購入完了後のカートの中身の取り出し方について

2016 年 12 月 11 日

ホーム フォーラム 使い方全般 購入完了後のカートの中身の取り出し方について

このトピックには1件の返信が含まれ、1人の参加者がいます。10 ヶ月、 2 週間前 yokoye さんが最後の更新を行いました。

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • #81401

    yokoye
    参加者

    たいへん申し訳ございません。
    誤って管理者からのお知らせのところに投稿してしまいました。
    あらためてご質問させていただきます。
    管理者様、お手数ですが、先の投稿を削除していただきますようお願いいたします。

    ——————————————-
    WordPress のバージョン:WordPress 4.6.1
    Welcart のバージョン:Version 1.9.0.1610051
    ご利用のテーマ:petitgarden
    症状を確認したブラウザ:firefox50.0.2
    サーバー(会社名、サービス名):さくらのレンタルサーバ
    SSLの利用: 利用していない
    WordPress のパーマリンク設定:デフォルトから変更していない
    ——————————————–

    お世話になります。
    このフォーラムやgoogleでも検索してみたのですが、
    どうしても分からなかったので、はじめて質問させていただきます。

    まず、商品マスターに商品を登録する際に、
    「Reserved_Date」という名前のカスタムフィールドを設定しています。
    そして、商品注文時のオプションとして「使用日」(2016/12/01の形式)
    をユーザーに入力してもらいます。
    購入が完了したタイミングで、このオプション「使用日」の値「2016/12/01」で、
    「Reserved_Date」の値を更新したいのです。
    usces_action_reg_orderdata
    というフックを使えばできそうだということが分かり、

    add_action( ‘usces_action_reg_orderdata’, ‘usces_action_reg_orderdata_update_postmeta’ );
    function usces_action_reg_orderdata_update_postmeta( $args ){

    extract( $args ); //カートの中身を展開して新しい配列にする
    foreach( $cart as $cartrow ){
    $post_id = $cartrow[‘post_id’];
    $order_id = $cart_row[‘order_id’];
    $options = $cart_row[‘options’];

    foreach((array)$options as $key => $value){
    if( $key == ‘使用日’ ) {
    $optstr = $value;
    }
    }
    //商品マスターを書き換え
    update_post_meta( $post_id, ‘Reserved_Date’, $optstr );
    }
    }

    というコードを、テーマのfunctions.phpに追加しました。
    しかし、商品を購入しても「Reserved_Date」は空白になってしまいます。

    最後の
    update_post_meta( $post_id, ‘Reserved_Date’, $optstr );
    を、

    update_post_meta( $post_id, ‘Reserved_Date’, “日付” );

    とすると、「Reserved_Date」は「日付」という文字が入ります。

    なので、カートの中身(オプション)の取り出し方が、間違っているのだと思うのですが、
    どのようにしたらよいのか分かりません。

    お忙しいところたいへん恐れ入りますが、中身の取り出し方について
    教えていただきたくお願いいたします。

    #81403

    yokoye
    参加者

    自己解決しました。
    extract( $args );
    の後、配列をとりだすところの変数の値が間違っていたのが原因でした。

    よくわからないまま、
    参考サイトのコードをコピーして、つぎはぎしていたため、
    初歩的なミスをしてしまいました。
    お騒がせして、たいへん申し訳ありませんでした。

2件の投稿を表示中 - 1 - 2件目 (全2件中)

このトピックに返信するにはログインが必要です。