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

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

Сообщение 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 ... ng-when-sh
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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