ネットショップを無料で構築します!成果報酬型だから運営固定費もゼロ!

ネットショップ構築&運営サポート|ビー・フレンド<Be-friend>

広島県広島市内であれば直接お伺いします♪

トップページ > Welcart

Welcartカスタマイズ - 会員メールアドレスをacmailerと連動

Welcartとacmailerを連動させて、会員登録時にacmalerにもメールアドレスが登録されるようにしたので備忘録としてまとめておきます。

本カスタマイズを行うにあたりまして、以下の記事を参考にさせていただきました。
感謝です☆

WelcartとAcmailerを連動させる

WelcartとAcmailerでメールアドレスを連動

カスタマイズ要件は以下の通りです。

【フロント画面】

  • 会員登録時にacmailerにメールアドレスを登録する。
  • acmailerへの登録は必須とする。(登録するorしないは選択不可)
  • 会員が退会(登録情報を削除)したらacmailerのメールアドレスも連動して削除する。
  • 会員が登録情報を変更したらacmailerのメールアドレスも連動して変更する。

【管理画面】

  • (特になし)

【動作確認バージョン】

  • Welcart:Version 1.1.3
  • acmailer:Version 3.8.12

事前準備

Welcartとacmailerはインストールしておく。

テーマフォルダのfunctions.php

[wordpress]/themes/welcart_default/functions.php

以下追加
/***********************************************************
* acmailerと連動
***********************************************************/
function acmailer_member(){ 
	$url = 'http://(acmailer3のインストールURL)/acmailer3/reg.cgi';
	$data = array(
		'email' => $_POST['member']['mailaddress1'],
		'reg' => 'add',
		'encode' => '文字コード',
	);
	$options = array('http' => array(
		'method' => 'POST',
		'content' => http_build_query($data),
	));
	$contents = file_get_contents($url, false, stream_context_create($options));
}
add_action('usces_action_membercompletion_page_header', 'acmailer_member');

function acmailer_cart_member(){
	global $usces_entries;
	$url = 'http://(acmailer3のインストールURL)/acmailer3/reg.cgi';
	$data = array(
		'email' => $usces_entries['customer']['mailaddress1'],
		'reg' => 'add',
		'encode' => '文字コード',
	);
	$options = array('http' => array(
		'method' => 'POST',
		'content' => http_build_query($data),
	));
	$contents = file_get_contents($url, false, stream_context_create($options));
}
add_action('usces_action_delivery_page_header', 'acmailer_cart_member');

以上により、会員登録完了時に自動的にacmailerにメールアドレスが登録されるようになります。
(カート途中で会員登録を行った場合も登録されます。)

さらに、会員情報の変更・削除にも連動するようにします。

JSファイルの作成

会員情報の変更・削除の連動はjQueryで行うため、JSファイルを新しく作成する。

[wordpress]/themes/welcart_default/js/acmailer_del.js

新規作成
//// 会員情報削除時にAcmailerからも削除
function deletemember_check(){
  //確認メッセージ
  var ret = confirm("会員に関する全ての情報が削除されます。よろしいですか?");
  if (ret == true){
    $(function(){
      //メールアドレス取得
      var delmailaddress = $('.customer_form input#mailaddress1').attr('value');
      //ajaxでacmailerへデータ送信
      $.ajax({
        type: "POST",
        url: "http://(acmailerのインストールURL)/acmailer3/reg.cgi",
        data: "email="+delmailaddress+"®=del"
      });
      //会員情報削除処理の属性を設定
      $('.send input[name="pre_deletemember"]').after(
        '<input name="deletemember" value="" type="hidden" />'
      );
    });
  }
}
 
$(function(){
  //既存「onclick="〜"」 処理の無効化
  //「会員情報を削除する」ボタンを隠す
  $('.send input[name="deletemember"]').hide();
  //新たに「会員情報を削除する」ボタンを設定
  $('.send input[name="deletemember"]').after('<input name="pre_deletemember" value="退会して会員情報を削除する" onclick="return deletemember_check()" type="submit" />');
});
 
//// 会員情報変更時にAcmailerも更新
$(function(){
  //メールアドレス取得
  var oldmailaddress = $('.customer_form input#mailaddress1').attr('value');
 
  //「更新する」ボタンクリック時の動作
  $('.send input[name="editmember"]').click(function () {
    //変更後のメールアドレス取得取得
    var newmailaddress = $('.customer_form input#mailaddress1').attr('value');
 
    //アドレス変更の場合
    if(oldmailaddress != newmailaddress){
      data = "oldemail="+oldmailaddress+"&newemail="+newmailaddress+"®=edit"+"&encode=文字コード";
      //データ送信
      $.ajax({
        type: "POST",
        url: "http://(acmailerのインストールURL)/acmailer3/reg.cgi",
        data: data
      });
 
      //旧アドレスが何故か消えないので
//      data = "email="+mailaddress0+"®=del"+"&encode=文字コード";
 
    //データ送信
    $.ajax({
      type: "POST",
      url: "http://(acmailerのインストールURL)/acmailer3/reg.cgi",
      data: data
    });
 
  });
});

jQueryのダウンロード

http://docs.jquery.com/Downloading_jQuery

ダウンロード保存

Wordpressに内包されていたjQuery(バージョン1.7.1)では上記のJavaScriptが動作しませんでしたので、1.6.4をダウンロードして任意のフォルダに保存してください。
(今回の例では /wp-content/themes/welcart_default/js/jquery.js )

テーマフォルダのfunctions.php

[wordpress]/themes/welcart_default/functions.php

以下追加
wp_enqueue_script( 'jquery164','/wp-content/themes/welcart_default/js/jquery.js', array() , '1.6.4' );
wp_enqueue_script( 'acmailer','/wp-content/themes/welcart_default/js/acmailer_del.js', array('jquery'));

acmailerの設定

「各種設定」→「システム設定」→「削除時の動作」

「確認画面を表示する」のチェックをはずす

【残件】

  • フロント画面の会員情報ページからメールアドレスを変更して更新すると、一回目は正常にacmailerのメールアドレスも変更されるが、そのまま続けて別のメールアドレスに変更するとacmailerに反映されない。(Welcartの登録メールアドレスは更新される。)
  • 管理画面の会員情報ページからのメールアドレス変更には連動していない。
  • 上記の設定だと、jQueryが二つ読みこまれている。(Wordpressに内包されたものと、ダウンロードしたもの。)

残件が気になるので実運用ではちょっと不安です。。。


代表よりご挨拶

担当者よりご挨拶

ネットショップの開業をお考えの方、ぜひ一度当社にご相談ください。プランニングから構築・運営管理まで、当社がフルサポートいたします。ご相談は無料ですのでお気軽にどうぞ♪

〒730-0041
広島県広島市中区小町1-27
清和ビル302《FLAGS Hiroshima》
E-mail;
contact☆be-friend.biz
(☆を@に書き換えてお送りください)
営業時間 AM9:00~PM6:00
(土・日・祝日を除く)

お問い合わせはこちら »

社名に込めた思い


 befriend 
[他動詞]

訳)友人になる・仲良くなる・~の味方となる・助ける、など。

他動詞とは、相手がいて初めて意味を成す言葉のことを指します。
これを当社に置き換えると、相手とはお客さまのこと。つまり、お客さまの助けになりたい、お客さまのお役に立ちたいという思いを込めて社名としました。

お客さまから「ありがとう」の言葉をいただけるよう、精一杯お手伝いすることをお約束します。