Очистить WooCommerce оформить заказ предварительно заполненные поля доставки - PullRequest
1 голос
/ 29 мая 2019

Мне нужно очистить поля доставки из профиля клиента WordPress после того, как они разместили заказ.

Магазин настроен на продажу подарочных корзин, и многие постоянные клиенты захотят отправлять подарочные корзины на разные адреса доставки каждыйвремя они возвращаются.Они будут использовать ту же платежную информацию, которая есть в их профиле

add_filter('woocommerce_checkout_fields','custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {

  $fields['shipping']['shipping_first_name'] = '';
  $fields['shipping']['shipping_last_name'] = '';
  $fields['shipping']['shipping_company'] = '';
  $fields['shipping']['shipping_address_1'] = '';
  $fields['shipping']['shipping_address_2'] = '';
  $fields['shipping']['shipping_city'] = '';
  $fields['shipping']['shipping_postcode'] = '';
  $fields['shipping']['shipping_country'] = '';
  $fields['shipping']['shipping_state'] = '';

  return $fields;
}

. Это очищает поля, а также очищает метки полей.Могу ли я отредактировать существующее, чтобы очистить только поля и оставить надписи видимыми над каждым полем.

Большое спасибо за просмотр

1 Ответ

0 голосов
/ 29 мая 2019

Вы не используете правый крючок фильтра… Следующее очистит предварительно заполненные значения полей доставки:

add_filter( 'woocommerce_checkout_get_value', 'clear_shipping_fields_values', 5, 2 );
function clear_shipping_fields_values( $value, $input ) {
    $keys = ['first_name','last_name','company','address_1','address_2','city','postcode','country','state'];
    $key  = str_replace('shipping_', '', $input);
    if( in_array($key, $keys) && is_checkout() ) {
        $value = '';
    }
    return $value;
}

Код помещается в файл functions.php вашей активной дочерней темы (или активной темы). Протестировано и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...