После того, как мы внесли изменения на страницу корзины, пришло время немного подкорректировать страницу оформления заказа. А точнее, научимся добавлять новые и удалять старые поля к оформлению заказа.
Как удалить поле
Давайте удалим поле для введения номера телефона.
Для начала воспользуемся уже известным нам способом и посмотрим на массив, который отвечает за вывод всех полей.
function carolinaspa_checkout_fields($fields){ echo "<pre>"; echo var_dump($fields); echo "</pre>"; add_action("woocommerce_checkout_fields", "carolinaspa_checkout_fields", 20);
Мы получим очень большой вложенный массив. Найдем строки, отвечающие за вывод номера телефона.
Читайте также: Как изменить Woocommerce с помощью дочерей темы. Часть 3 — как использовать action hook.
Теперь можно удалить нужную нам строчку. В functions.php пишем
function carolinaspa_checkout_fields($fields){ unset($fields['billing']['billing_phone']); return $fields; } add_action("woocommerce_checkout_fields", "carolinaspa_checkout_fields", 20);
Как добавить дополнительное поле к оформлению заказа
Теперь добавим дополнительное поле в самом конце и сделаем его обязательным для заполнения
/* добавить дополнительные поле к оформлению заказа */ function carolinaspa_add_checkout_fields($fields){ $fields['billing']['new'] = array( 'css' => array('form-row-wide'), // добавит класс для отображения во всю ширину 'label' => 'NEW (this is new item)', 'required' => true ); return $fields; } add_action("woocommerce_checkout_fields", "carolinaspa_add_checkout_fields", 20);
РИС
Добавим сюда еще одно, более сложное поле – выпадающий список
function carolinaspa_add_checkout_fields($fields){ $fields['billing']['new'] = array( 'css' => array('form-row-wide'), 'label' => 'NEW (this is new item)', 'required' => true ); $fields['order']['about_us'] = array( 'css' => array('form-row-wide'), 'type' => 'select', // тип поля (по умолчанию - текстовое) 'label' => 'как вы узнали о нас?', 'options' => array( 'defolt' => 'choose..', 'radio' => 'radio', 'tv' => 'television', 'internet' => 'internet' ) ); return $fields; } add_action("woocommerce_checkout_fields", "carolinaspa_add_checkout_fields", 30);
В следующей статье научимся отображать сопутствующие товары в записях блога.