“別の住所へ配送する”オプションを【WooCommerce】 商品カテゴリーで分岐して非表示にする

  • ブックマーク
wordpress

WordPressのWooCommerceにて、Aカテゴリーに属する商品は”店頭お渡し”のみだから、チェックアウトページの「別の住所へ配送する」オプションを非表示にしたい。

調べて実装できたので、メモしておく。

functios.phpに以下のコードを貼り付けるとOK

今回のサンプルコードでは、カテゴリースラッグの”smile”・”example”・”test”の3つのカテゴリーの商品がカートに含まれている場合、「別の住所へ配送する」オプションが非表示となる。

/* 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;
}

woocommerce_cart_needs_shipping_address フックを操作している。

なお、全ての商品にて”別の住所へ配送する”オプションを非表示にするには、こちらのコードを使う。(設定画面からも変更できるので、コードでなくても良いが、参考に)

add_filter( 'woocommerce_cart_needs_shipping_address', '__return_false');

今回参考になったのが、こちらの記事。

バーチャル商品に設定したカテゴリーで、逆に「”別の住所へ配送する”オプションを表示」したいという内容だ。

記事のAnswerコードが参考になった。

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('gift'), 'product_cat', $cart_item['product_id'] ) ) {
            // Force enable shipping address for virtual "gift" products
            return true; 
        }
    }
    return $needs_shipping_address;
}

trueをfalseに置き換えると良いので、とても助かった。感謝です。

散財したアイテム

最近の散財はこちら!

出張に便利そうなコンセントを買った!塩は、ぬちまーす。

【WordPressブログ スタートアップ講座 開催決定しました】

12月30日  木曜日
・10時から18時
・Kitchen Bee(4名)とオンライン(4名)のハイブリッド開催です。(リアルは残り2名!)
お申し込みページはこちら

オンラインのスタートアップ講座、気になっていたけど、4日間に分かれていて、スケジュールが、、というあなた。オンラインでも1日でOKなスケジュールを作りました。

ぜひ、この機会に、情報発信の母艦を一緒に作りましょう。

また、「ブログをスタートしたい」という方に、すごく良い講座あるよっと、ご紹介いただけると、飛び上がって喜びます。

よろしくお願いします。

(なお、リアルの会場は、Kitchen Beeにて人数を制限し、感染症対策を行って開催します。)

追伸、

また、11月3日の19時から20時の1時間、ものくろキャンプ交流会を開催します。こちらは、少人数ですが、Kitchen Beeのお席もご用意できる予定です。

オンラインとハイブリッド開催しますので、オンライン参加も大歓迎です。イベントを立ち上げますが、まずは、カレンダーに丸印を!

ブログスタートアップ講座のお申し込み告知ページを見逃したくない!という方は、下のメールマガジンにご登録ください。

お申し込み開始時にご案内をお送りします。

無料メルマガ発行中

メルマガも2021年は頑張って書いています。ぜひ登録して読んでくださいね。(無料です)

メールマガジン
無料で購読
メールアドレス *
* 必須項目

【案内板】

このブログをはじめて読んだあなたへ
ぜひ読んでもらいたい記事を用意しました。

オンラインショップあります

↓ 下のバーナーをクリックすると移動します。


Youtube

  • ブックマーク

この記事を書いた人

情報発信ナビゲーター 大東 信仁

情報発信ナビゲーター / 博士課程中退 / ニックネーム : ものくろ / ブロガー / WordPressが得意 / orz レイアウト開発者 / 株式会社 あみだす 代表取締役