カスタム・メンバーフィールドの値をメール送信

フォーラム 使い方全般 カスタム・メンバーフィールドの値をメール送信

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

    ——————————————-
    WordPress のバージョン:4.3
    Welcart のバージョン:1.4.21
    ご利用のテーマ:自作テーマ
    症状を確認したブラウザ:Google Chrome
    サーバー(会社名、サービス名):Xserver
    SSLの利用:無し
    WordPress のパーマリンク設定:/%post_id%/
    ——————————————–

    【要 望:会員登録した際の自動送信メールに会員情報を全て記載して送信したい】

    よろしくお願いします。
    会員登録の際に下記の3つの項目をカスタムメンバーフィールドで追加しました。
    ————————————————
    フィールドキー | 出力HTMLタイプ
    ・nickname |(input type=”text”)
    ・mailmaga |(select)
    ・email_sub |(input type=”text”)
    ————————————————

    そこで会員登録が完了した後に送られてくるメールだと、
    ・会員番号
    ・名前
    ・メールアドレス
    の3つしか会員に送信されないため、これを変更したく、
    名前、住所、電話番号など全てを送信したく下記のフックを行いました。
    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
    add_filter(‘usces_filter_send_regmembermail_message’,’my_send_regmembermail_message’,10,2);
    function my_send_regmembermail_message(){
    global $usces;
    $args = func_get_args();
    $mail_data = $usces->options[‘mail_data’];
    $user = $args[1];
    var_dump($user);
    $message = $mail_data[‘header’][‘membercomp’];
    $message .= “\n\n”;
    $message .= ‘●会員番号:’.trim($user[‘ID’]).”\n”;
    $message .= ‘●お 名 前:’.trim($user[‘name1′]).’ ‘.trim($user[‘name2’]).”\n”;
    $message .= ‘●フリガナ:’.trim($user[‘name3′]).’ ‘.trim($user[‘name4’]).”\n”;
    $message .= ‘●ニックネーム:’.trim($user[‘csmb_nickname’]).”\n”;
    $message .= ‘●郵便番号:’.trim($user[‘zipcode’]).”\n”;
    $message .= ‘●住  所:’.trim($user[‘address1’]).trim($user[‘address2’]).trim($user[‘address3’]).”\n”;
    $message .= ‘●電話番号:’.trim($user[‘tel’]).”\n”;
    $message .= ‘●メルマガを受け取るせ:’.trim($user[‘csmb_mailmaga’]).”\n”;
    $message .= ‘●メールアドレス(メイン):’.trim($user[‘mailaddress1’]).”\n”;
    $message .= ‘●メールアドレス(サ ブ):’.trim($user[‘csmb_email_sub’]).”\n”;
    $message .= “\n\n”;
    $message .= $mail_data[‘footer’][‘membercomp’];
    return $message;
    }
    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

    住所や電話番号などデフォルトの情報は全て出力できました。
    しかし、ニックネームやメルマガを受け取るなど、カスタム・メンバーフィールドの値だけが
    出力されません。

    【試した事】
    global $usces;
    $member_id = usces_memberinfo(‘ID’,’return’);
    $name_rf = $usces -> get_member_meta_value(‘csmb_nickname’,$member_id);

    会員情報の編集のページでは上記で出力できたので、できるかと思いましたができませんでした。。。

    会員登録した際にカスタム・メンバーフィールドを出力してメールで送信する方法を
    ご存知の方がいればご教授いただけないでしょうか?

    なお、SQL文はあまり知識がないため、避けたいと思っております(わがまますいません!)

    #75628
    nanbu
    キーマスター

    こんにちは。

    usces_memberinfo()で取得されるのはmember_idでは無く、メンバー情報が格納された配列です。従いまして以下のようにしていただくと良いかと思います。

    
    $member_info = usces_memberinfo(‘ID’,’return’);
    $member_id = $membert_info['ID'];
    
    #75633
    weltk
    参加者

    nanbu様

    ご返信ありがとうございます。
    つきましては、下記の様にしてみました。

    add_filter(‘usces_filter_send_regmembermail_message’,’my_send_regmembermail_message’,10,2);
    function my_send_regmembermail_message(){
    global $usces;
    $member_info = usces_memberinfo(‘ID’,’return’);
    $member_id = $membert_info[‘ID’];
    $nickname = get_member_meta_value(‘csmb_nickname’,$member_id);
    $args = func_get_args();
    $mail_data = $usces->options[‘mail_data’];
    $user = $args[1];
    var_dump($user);
    $message = $mail_data[‘header’][‘membercomp’];
    $message .= “\n\n”;
    $message .= “————————————————————————————\n”;
    $message .= ‘●会員番号:’.trim($user[‘ID’]).”\n”;
    $message .= ‘●お 名 前:’.trim($user[‘name1′]).’ ‘.trim($user[‘name2’]).”\n”;
    $message .= ‘●フリガナ:’.trim($user[‘name3′]).’ ‘.trim($user[‘name4’]).”\n”;
    $message .= ‘●ニックネーム:’.$nickname.”\n”;
    $message .= ‘●郵便番号:’.trim($user[‘zipcode’]).”\n”;
    $message .= ‘●住  所:’.trim($user[‘address1’]).trim($user[‘address2’]).trim($user[‘address3’]).”\n”;
    $message .= ‘●電話番号:’.trim($user[‘tel’]).”\n”;
    $message .= ‘●メルマガを受け取る:’.trim($user[‘csmb_mailmaga’]).”\n”;
    $message .= ‘●メールアドレス(メイン):’.trim($user[‘mailaddress1’]).”\n”;
    $message .= ‘●メールアドレス(サ ブ):’.trim($user[‘csmb_email_sub’]).”\n”;
    $message .= “————————————————————————————\n”;
    $message .= “\n\n”;
    $message .= $mail_data[‘footer’][‘membercomp’];
    return $message;
    }

    結果エラーがでます。
    下記がエラーメッセージです。
    Fatal error: Call to undefined function get_member_meta_value() in

    また、まずはニックネームだけを出力してみようと思い下記の方法で試してみましたが
    やはり、カスタム・メンバーフィールドの値は
    出力できません(メール送信すると空)

    $message .= ‘●ニックネーム:’.trim($user[‘csmb_nickname’]).”\n”;

    どうすればカスタムメンバーフィールドの値を、
    会員登録完了の自動送信メールに含める事ができるでしょうか?
    ご教授よろしくお願い致します。

    #75711
    nanbu
    キーマスター

    大変失礼いたしました。
    前回のレスを訂正させていただきます。

    メンバーIDを取得するにはこちらで大丈夫です。混乱させてしまって済みません。

    
    $member_id = usces_memberinfo(‘ID’,’return’);
    

    get_member_meta_value() ですが、こちらは$uscesのメンバー関数ですので、$usces->get_member_meta_value として下さい。

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