Как скрыть / удалить дополнительные поля оформления заказа для определенных товаров на странице оформления заказа? - PullRequest
0 голосов
/ 15 октября 2019

Я установил плагин WooCommerce Checkout & Account Field Editor на свой веб-сайт WordPress для добавления дополнительных полей на страницу оформления заказа. Целью установки этого плагина является добавление трех дополнительных полей, таких как how_you_heard_about_our_store, user_membership_level и user_refferer_name, для получения дополнительной информации от моих пользователей.

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

Цель состоит в том, чтобы скрыть эти поля только в этом продукте. У меня есть 4 различных варианта этого продукта, и мне нужно, чтобы эти поля были скрыты для каждого из его вариантов.

Я испробовал следующие методы, но на самом деле это поля WooCommerce по умолчанию.

https://www.liquidweb.com/kb/way-conditionally-show-hide-checkout-fields-specific-products-product-categories-store/

Кроме того, я тоже безуспешно попробовал следующее:

    function custom_override_checkout_fields( $fields ) {
    unset($fields['order']["how_heard"]);
    unset($fields['order']["member_level"]);

    return $fields;
}

Существуют ли какие-либо конкретные действия или фильтры для удаления дополнительных полей со страницы оформления заказа? Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 15 октября 2019
add_filter( 'woocommerce_checkout_fields' , 'hide_checkout_fields' );

function hide_checkout_fields( $fields ) {
  foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        $product = $cart_item['data'];
        $id = $product->get_id();
       $products = array(2516, 584, 2454);  // Product Ids

if (in_array($id, $products)) 
  { 
   unset($fields['order']['how_heard']);
   unset($fields['order']['member_level']);
  } 

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