前提
Woocommerceと「Checkout Field Editor for WooCommerce」というプラグインをつかって、決済ページに追加フィールドを実装しています。このフィールドに フィルターフックでカテゴリーのif分岐を作ろうとしています。決済ページ内の追加フィールド(woocommerce_additional_fields)をフックにし、additional_fieldsを関数にしていますが、分岐がうまくいきません。
実現したいこと
Woocommerceでsample1,2のカテゴリー商品がカートに入ったときは追加フィールドを非表示にしたいです。
参考サイト(“別の住所へ配送する”オプションをfilterで非表示に分岐)
/* hide another shipping_address for category */ add_filter( 'woocommerce_cart_needs_shipping_address', 'custom_cart_needs_shipping_address', 50, 1 ); function custom_cart_needs_shipping_address( $needs_shipping_address ) { // Loop though cat items foreach ( WC()->cart->get_cart() as $cart_item ) { if ( has_term( array('smile','example','test'), 'product_cat', $cart_item['product_id'] ) ) { // shipping address hidden return false; } } return $needs_shipping_address; }
参考サイトをもとに作ったもの(子テーマのfunctions.phpに記載)
add_filter( 'woocommerce_additional_fields','additional_fields' ); function additional_fields( $fields ) { foreach ( WC()->cart->get_cart() as $cart_item ) { if ( has_term( array('sample1','sample2'), 'product_cat', $cart_item['product_id'] ) ) { return false; } } return $fields; }
現在も関数を探し中ですが、急ぎの対応のため、質問させていただきました。
問題点のご教示をいただけましたら幸いです。
何卒よろしくお願いいたします。
あなたの回答
tips
プレビュー