Woocommerce 特定カテゴリの支払い方法を変更する

folder_openWEB制作

Woocommerce で特定のカテゴリーの時に支払い方法を無効にする方法です。

あるカテゴリーの商品は代引きを利用不可にしたいという場合に役立ちます。

functions.phpに次のコードを追加します。

 

//例)特定カテゴリで任意の支払い方法をアンセットする
add_filter( 'woocommerce_available_payment_gateways', 'unset_gateway_by_category' );

function unset_gateway_by_category( $available_gateways ) {
global $woocommerce;
$unset = false;
$category_ids = array( 94, 37 ); //カテゴリIDを入力 複数の場合はカンマで区切る
foreach ( $woocommerce->cart->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['atstore'] ); //代引き=cdo 銀行振込=bankjp 店頭払い=atstore カード払い=stripeなど
    return $available_gateways;
}


$category_ids にカテゴリIDを指定。

$available_gateways は 代引きなら ['cod'] 銀行振込なら['bankjp'] を指定します。
(いずれもWoocommerce Japan導入が前提)

忘備録として。

関連記事:Woocommerce 一定の金額で特定の支払い方法を無効にする

前の投稿
ショッピングカートのメリットとデメリット
次の投稿
WordPress アドレス (URL)を変更してログイン出来ない場合の対応方法

関連記事

keyboard_arrow_up