Woocommerceで商品によって代引き非表示設定をする

Woocommerceの設定メモ

Aという商品は、ゆうパケットなどのメール便でポスト投函なので代引きは出来ないけど、Bという商品は通常配送なので、代引きを受け付ける。

その時に、Woocommerceでは代引き設定をすると全ての商品で代引きを選択できるようになってしまう。これを解決したい。

functions.phpに書き込む方法

下記のソースをfunctions.phpに書き込むそうです。カテゴリーIDを入れますが、こちらは検証してません。

add_filter( 'woocommerce_available_payment_gateways', 'unset_gateway_by_category' );

function unset_gateway_by_category( $available_gateways ) {
$unset = false;
$category_ids = array( 1, 11 );  //カテゴリーIDを記入
foreach ( WC()->cart->get_cart_contents() as $key => $values ) {
  $terms = get_the_terms( $values['product_id'], 'product_cat' );
  foreach ( $terms as $term ) {
    if ( in_array( $term->term_id, $category_ids ) ) {
        $unset = true;
        break;
    }
  }
}
if ( $unset == true ) unset( $available_gateways['col'] ); //非表示にする支払い。
return $available_gateways;
}

Conditional Shipping and Payments(プラグイン・有料)を購入

結論として、僕はこちらを購入。有料で英語ですが、こちらが簡単にできました。

こちらから購入できます。

投稿者プロフィール

ひろえのぶちか
ひろえのぶちか顧客創造コンサルタント
1996年にホームページ制作会社を創業。その後、ネット通販のサイトのプロデュースなどで実績を多数つくる。SEOという言葉が出てくる前から、検索エンジンの研究を重ね、広告費をかけなくても売上があがる仕組みを構築してきた。現在は、コンサルなど肩書をなくし多方面で活動している。1970年2月生まれ。福岡市にて生を受ける。

誰もが驚く!月5000円からのホームページ制作

1.WordPressを使ったホームページを無料設置!
2.ホームページの構成はプロが考えます!
3.プロが画像やレイアウトを無料で仕上げます!
4.ドメイン&サーバー代は無料!
5.更新の仕方などをサポートしていきます。
6.WEB集客に関する情報提供
7.会員同士のコミュニティー化

コメントを残す