Предотвратить перезапись полей доставки при выставлении счета, когда «Отправить на другой адрес?» Не отмеченоPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Предотвратить перезапись полей доставки при выставлении счета, когда «Отправить на другой адрес?» Не отмечено

Сообщение Anonymous »

Я настраиваю поведение оформления заказа WooCommerce и столкнулся с проблемой «Отправить на другой адрес?» флажок.
Если флажок установлен, отображаются поля доставки, а расчеты основаны на адресе доставки. Это работает так, как и ожидалось.
Однако, если флажок снят, WooCommerce автоматически устанавливает поля доставки в соответствии с полями выставления счета. Я хочу предотвратить такое поведение.
Чего я хочу достичь:
Отображать поля доставки независимо от того, установлен ли флажок или нет.
Сохранять поля выставления счета и доставки полностью независимыми.
Убедитесь, что все расчеты основаны исключительно на полях доставки, даже если флажок снят.
Что я пробовал:
Я пробовал следующие решения:
Использовал Фильтр woocommerce_checkout_posted_data для очистки полей платежа, если флажок снят:

Код: Выделить всё

add_filter('woocommerce_checkout_posted_data', 'force_shipping_fields_only');
function force_shipping_fields_only($data) {
if (isset($data['ship_to_different_address']) && !$data['ship_to_different_address']) {
foreach ($data as $key => $value) {
if (strpos($key, 'billing_') !== false) {
$data[$key] = ''; // Clear billing fields
}
}
}
return $data;
}
Однако это не помешало WooCommerce перезаписать поля доставки платежными данными.
Попытался переопределить данные клиента в woocommerce_checkout_update_order_review:

Код: Выделить всё

add_action('woocommerce_checkout_update_order_review', 'force_shipping_only_calculation');
function force_shipping_only_calculation($posted_data) {
WC()->customer->set_shipping_country($posted_data['shipping_country']);
WC()->customer->set_shipping_state($posted_data['shipping_state']);
// And so on for other fields...
}
Но это также не решило проблему.
Ожидаемое поведение:
Когда флажок снят:Поля доставки должны оставаться доступными для редактирования и не перезаписываться платежными данными.
Расчеты всегда должны основываться на полях доставки.
Фактическое поведение:
Когда флажок установлен снято:
Поля доставки перезаписываются платежными данными.
WooCommerce игнорирует независимые поля доставки.

Подробнее здесь: https://stackoverflow.com/questions/793 ... o-a-differ
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»