На странице оформления заказа я хотел бы добавить настраиваемое поле, если содержимое корзины весит более 1000 кг.
Есть ли способ добавить оператор if (в form-checkout.php?), который получает вес корзины, а затем я могу добавить в поле выбора?
Сначала прочтите также официальная соответствующая документация для настройки полей оформления заказа или эта документация.
Вот пример, который добавит пользовательское поле выбора оплаты, когда вес корзины превышает 1000 кг (1 тонна) на странице оформления заказа:
add_filter( 'woocommerce_checkout_fields' , 'customizing_checkout_fields', 10, 1 );
function customizing_checkout_fields( $fields ) {
if ( WC()->cart->get_cart_contents_weight() > 1000 ) {
// Custom Select field
$fields['billing']['billing_custom'] = array(
'type' => 'select',
'label' => __("Cart weight over 1 Ton", "woocommerce"),
'class' => array('form-row-wide'),
'options' => array(
'' => __("Choose an option please…", "woocommerce"),
'option-1' => __("Option 1", "woocommerce"),
'option-2' => __("Option 1", "woocommerce"),
'option-3' => __("Option 1", "woocommerce"),
),
'priority' => '120',
'required' => true,
);
}
return $fields;
}
Код находится в файле functions.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Идеально, спасибо!