Я создаю пользовательский способ доставки для Woocommerce, и одна вещь, на которой я полностью зависаю, - это передать пользовательские значения функции calculate_shipping(), когда она используется на на странице «Корзина» или «Оформить заказ».Пользовательские поля Woocommerce для калькулятора доставки
Мне нужно пройти несколько определенных пользователем переменных, которые будут влиять на котировку - то есть «Есть Адрес места жительства», «Is Trade Show», и т.д. и т.п.
calculate_shipping получает массив $ пакет, который содержит массив 'destination', но это включает только стандартные данные add1, add2, city, state, zip, country. Я добавил пользовательские поля на страницу проверки как для выставления счетов, так и для доставки, но я все еще не могу понять, как сделать эти значения доступными для функции calculate_shipping.
Я добавил пользовательское поле следующим образом:
add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields');
// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields($fields) {
$fields['shipping']['is_residential'] = array(
'label' => __('Residential Address?', 'woocommerce'),
'type' => 'checkbox',
'required' => false,
'class' => array('form-row-wide'),
'clear' => true
);
return $fields;
}
И я вижу это поле появляется на участке судоходства формы заказа. Однако я не вижу, как я могу получить к нему доступ в любом месте. Даже если сделать print_r($_POST)
на странице проверки, это поле не является частью данных сообщения, даже после того, как я знаю, что форма была обновлена и повторно отправлена.
Но самое главное, мне нужно добавить содержимое переданного поля в объект пакета $, который Woocommerce передает на функцию calculate_shipping() метода доставки.
Я просто не уверен, с чего начать с этого.
Обычно это полезно для людей, если вы приводите фрагмент кода, который вы написали до сих пор, который демонстрирует проблему, с которой вы столкнулись, а затем укажите, где проблема в этом коде, а не просто * код, который вы написали. – neminem
Я добавил код выше, но я не уверен, насколько он будет полезен. Самое главное, что мне нужно, чтобы пользовательские поля проверки были доступны как-то, и до сих пор я даже не могу найти значения в $ _POST – HeruRaHa