[未解決] 商品をカートへ入れる際のルール化

フォーラム 使い方全般 [未解決] 商品をカートへ入れる際のルール化

  • このトピックには6件の返信、2人の参加者があり、最後にzin3により11年、 2ヶ月前に更新されました。
7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • 投稿者
    投稿
  • #52853
    zin3
    参加者

    特定の商品Aをカートへ入れる際には、必ず商品Bもカートにいれなくてはいけないような形を作りたいと思っています。

    ※商品オプションでの対応でなく、別々の商品として扱いたいと思っています。

    このようなカスタマイズを行うためにはどのようにやれば良いかお分かりになる方、ご教授頂ければと思います。

    よろしくお願いします。

    #67059
    nanbu
    キーマスター

    こんにちは。

    ‘usces_filter_incart_check’というフックがございます。

    こちらでカートの中を走査して条件に合わなければメッセージを返すという風にすることができます。

    #67061
    zin3
    参加者

    nanbu様、ご連絡ありがとうございます。

    ‘usces_filter_incart_check’の使い方ですが下記を商品ページに記載したのですがうまく動作しませんでした。

    $post_idも指定する必要があるのでしょうか?

    よろしくお願いします。

    <?php

    $mes = ‘item01がありません。’;

    $sku = item01;

    do_action(‘usces_action_incart_checked’, $mes, $post_id, $sku);

    ?>

    #67062
    nanbu
    キーマスター

    こちらのページやWordPress Codexを見て、WordPressフックAPIを学んでください。

    https://www.welcart.com/community/archives/1697

    #67063
    zin3
    参加者

    nanbu様、お世話になります。

    アドバイスを基に下記をテーマ内のfunction.phpに追記して動作を確認しました。

    下記でカート内にskuがaaaの商品が入っていないとメッセージが表示されるという認識なのですが、メッセージが表示されません。

    もうしわけないのですが再度アドバイスを頂ければと思います。

    add_filter( 'usces_filter_incart_check', 'my_filter_incart_check', 10, 3 );
    function my_filter_incart_check( $mes, $post_id, $sku ){
    $mes = 'aaaが入っていません。';
    $sku = 'aaa';
    }

    よろしくお願いします。

    #67064
    nanbu
    キーマスター

    $mesには他のメッセージが入っている可能性がありますので、コンキャットしなくてはいけません。(.=)

    現在のカート内の情報を取得するには次のようにします。

    global $usces;
    $cart = $usces->cart->get_cart();

    $cartをvar_dump()で確認して必要な情報を利用してください。

    #67065
    zin3
    参加者

    ご連絡ありがとうございます。

    $mesをコンキャットしたのですが何故かサーバーエラーとなってしまいます。


    最終目標:カート内に商品Aがなければ「商品Aがありません」というメッセージを返す。


    <実施手順>

    ①商品Aの情報確認

    global $usces;
    $cart = $usces->cart->get_cart();
    var_dump($cart);

    ⇒商品Aのskuがaaa、post_idが111

    ②テーマのfunction.phpに下記を追記するとサーバーエラーになる。

    add_filter( 'usces_filter_incart_check', 'my_filter_incart_check', 10, 3 );
    function my_filter_incart_check( $mes, $post_id, $sku ){
    $mes . = '商品Aがありません';
    $post_id = 111;
    $sku = 'aaa';
    }

    引き続きよろしくお願いいたします。

7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • このトピックに返信するにはログインが必要です。