7

私はこれを解決するために高低を調べましたが、運がありません. 修正は非常に簡単に聞こえるので、非常に基本的なものが欠けていると思います。

顧客の請求詳細を MailChimp グループに追加しようとしています。

オンライン講座を販売するサイト向けです。

私が実現したいこと: ユーザーはサイトで購入し、購入に基づいて適切な MailChimp グループに自動的にサインアップします (つまり、ユーザーは月間ビデオ コースを購入し、「月間ビデオ コース」MailChimp グループに追加されます)。

すでにいくつかのコードを書いていますが、機能していません (「未定義の変数」エラーが発生しています)。変数/構文が正しいかどうかわかりません。私は決してコーダーではありません。

誰かが私を助けることができるでしょうか?

これが私が持っているコードです(functions.phpに入れました):

function pass_wp_to_mc() {
require_once 'inc/MCAPI.class.php';
require_once 'inc/config.inc.php'; //contains apikey
require_once 'wp-content/plugins/woocommerce/classes/class-wc-checkout.php';


$api = new MCAPI($apikey);

// Grabs the WooCommerce Product IDs and associates them with the Mailchimp Group IDs - users are put into Groups based on product purchase.

if ($product_id == 42) {
$mailchimpGroupingId = 1;
$mailchimpGroup = 'Monthly';

} elseif ($product_id == 142) {
$mailchimpGroupingId = 1;
$mailchimpGroup = 'Weekly';

} else ($product_id == 144); 
$mailchimpGroupingId = 1;
$mailchimpGroup = 'Audio';

}

$merge_vars = array(
'FNAME' => $billing_first_name,
'LNAME'=> $billing_last_name,
'EMAIL'=> $billing_email,
'GROUPINGS'=>array(
array('id'=>$mailchimpGroupingId, 'groups'=>$mailchimpGroup),
)
);
$listId = 33833; //List ID found inside MailChimp on the page for your List
$my_email = '$email'; 
$double_optin = false; // People are automatically added in to List
$update_existing = true; // Will update users if they are already on the list


$retval = $api->listSubscribe( $listId, $my_email, $merge_vars, $double_optin, $update_existing);

if ($api->errorCode){
echo "Unable to load listSubscribe()!\n";
echo "\tCode=".$api->errorCode."\n";
echo "\tMsg=".$api->errorMessage."\n";
} else {
echo "Subscribed - look for the confirmation email!\n";
}

私の質問は次のとおりです。このコードは正しいですか? もしそうなら、functions.php はそれを置く場所ですか? もしそうなら、どのようにそれを「呼び出す」のですか? どこに呼び出しを入れますか - WordPress ファイル? ウーコマース? thankyou.php? checkout.php? カート.php?

どんな助けでも大歓迎です-私はこれを何週間も修正しようとしてきました!

更新:私はそれを理解しました!まず、コードが間違っていました。うまくいったのは次のとおりです。

require_once dirname(__FILE__).'/inc/MCAPI.class.php';
require_once dirname(__FILE__).'/inc/config.inc.php';

add_action('woocommerce_checkout_order_processed', 'get_info');

function get_info($order_id) { 
global $woocommerce;

$order = new WC_Order( $order_id );
$firstname = $order->billing_first_name;
$lastname = $order->billing_last_name;
$email = $order->billing_email;
$product_id=unserialize($order->order_custom_fields["_order_items"][0]);
$product_id=$product_id[0]['id'];

    global $apikey;
$api = new MCAPI($apikey);

if ($product_id == *GET THIS ID AT THE EDITING SCREEN OF YOUR PARTICULAR WOOCOMMERCE PRODUCT*) {
$mailchimpGroup = '*ENTER THE NAME OF YOUR MAILCHIMP GROUP (NOT THE TITLE)*';

} elseif ($product_id == *GET THIS ID AT THE EDITING SCREEN OF YOUR PARTICULAR WOOCOMMERCE PRODUCT*) {
$mailchimpGroup = '*ENTER THE NAME OF YOUR MAILCHIMP GROUP (NOT THE TITLE)*';

} else ($product_id == *GET THIS ID AT THE EDITING SCREEN OF YOUR PARTICULAR WOOCOMMERCE PRODUCT*); 
$mailchimpGroup = '*ENTER THE *NAME* OF YOUR MAILCHIMP GROUP (NOT THE TITLE)*';

$merge_vars = array(
                    'FNAME' => $firstname,
                    'LNAME'=> $lastname,
                    //'EMAIL'=> $email,
                    'GROUPINGS'=>array(
                        array('name'=>'*ENTER THE TITLE OF YOUR MAICHIMP GROUP (NOT THE NAME)', 'groups'=>$mailchimpGroup),
                        )
                    );
$listId = 'YOUR LIST ID HERE'; //List ID found inside MailChimp on the page for your List
$my_email = $email; 
$double_optin = false; // People are automatically added in to List
$update_existing = true;    // Will update users if they are already on the list               


$retval = $api->listSubscribe( $listId, $my_email, $merge_vars, $double_optin, $update_existing);
4

1 に答える 1

2

これにはプラグインがあります - WooChimp - MailChimp WooCommerce Integrationを見てください。ここにはPHPをよく知らない人がいるので、これが役立つと思いました。

完全な開示: 私はプラグインの作成者です。

于 2013-11-08T14:31:06.030 に答える