Интеграция MailChimp в корзину для электронной коммерции - PullRequest
1 голос
/ 06 марта 2010

Я собираюсь задать сложный вопрос, и я заранее извиняюсь за то, что я n00b на javascript!

По сути, я хочу интегрировать регистрацию в MailChimp в плагин WP E-Commerce. Если я правильно понимаю, это может быть достигнуто с помощью Javascript, где я отправляю данные в два разных места.

Я нашел довольно хорошую информацию об этом процессе здесь: http://www.codeproject.com/KB/scripting/multiact.aspx и здесь POST для формы, которая ОТПРАВЛЯЕТСЯ в другую форму

Прежде всего, требования к концу MailChimp, довольно просто:

<form action="http://mylist.us1.mailchimp.xxx/xxx/" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank">
 <fieldset>
 <legend>join our mailing list</legend>
<div class="indicate-required">* indicates required</div>
<div class="mc-field-group">
<label for="mce-EMAIL">Email Address <strong class="note-required">*</strong>
</label>
<input value="" name="EMAIL" class="required email" id="mce-EMAIL" type="text">
</div>
  <div id="mce-responses">

   <div class="response" id="mce-error-response" style="display: none;"></div>
   <div class="response" id="mce-success-response" style="display: none;"></div>
  </div>
  <div><input value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="btn" type="submit"></div>
 </fieldset> 
 <a href="#" id="mc_embed_close" class="mc_embed_close">Close</a>
</form>

Теперь для более сложной части ... исходный код электронной коммерции WP. Это огромный плагин (я думаю, 73 файла), но соответствующий код находится в "shopping_cart_page.php" ... вот источник этого:

Кто-нибудь точно знает, как будет выглядеть окончательный код, если бы я интегрировал код MailChimp выше в код электронной коммерции WP ниже? Мне кажется, у меня есть флажок, который дает покупателям магазина электронной коммерции WP возможность подключиться к списку рассылки MailChimp, чтобы при нажатии кнопки «Купить сейчас» их данные отправлялись и в локальную (WordPress) базу данных. в качестве внешней базы данных (MailChimp).

<code><?php
global $wpsc_cart, $wpdb, $wpsc_checkout, $wpsc_gateway, $wpsc_coupons;
$wpsc_checkout = new wpsc_checkout();
$wpsc_gateway = new wpsc_gateways();
$wpsc_coupons = new wpsc_coupons($_SESSION['coupon_numbers']);
 //echo "<pre>".print_r($wpsc_cart,true)."
"; // echo "
".print_r($wpsc_cart,true)."
"; if (wpsc_cart_item_count ()> 0): ?>

<? Php echo TXT_WPSC_REVIEW_YOUR_ORDER; ?>

<? Php echo TXT_WPSC_PRODUCT; ?>: <? Php echo TXT_WPSC_QUANTITY; ?>: <? Php echo TXT_WPSC_PRICE; ?>:
image 'alt =' <? php echo wpsc_cart_item_name (); ?> 'title =' <? php echo wpsc_cart_item_name (); ?> '/> '> <? php echo wpsc_cart_item_name (); if (wpsc_cart_item_custom_message ()) { ?> (<? php echo wpsc_cart_item_custom_message ()?>) <? php } ?> " method = "post" class = "Adjustform"> " /> " /> " name = "submit" /> <? Php echo wpsc_cart_item_price (); ?> " method = "post" class = "Adjustform"> " />
<? Php echo TXT_WPSC_COUPONSINVALID; ?>
<? php _e ('Введите номер своего купона'); ?>: "> coupons_name; ?> '/> ' />
<? php // этот HTML отображает HTML вашего заказа?>

подсчитывать OnClick = 'switchmethod (»","") 'значение =''name =' shipping_method '/>disabled = 'disabled' type = 'radio' id = ''значение =''name =' shipping_method '/> <? php if (wpsc_uses_shipping ()):?> <? php echo TXT_WPSC_TOTALSHIPPING; ?> <? php echo wpsc_cart_shipping (); ?> <? php endif; ?> <? php if (wpsc_uses_coupons () && (wpsc_coupon_amount (false)> 0)):?> <? php echo TXT_WPSC_COUPONS; ?> <? php echo wpsc_coupon_amount (); ?> <? php endif?> <? php echo TXT_WPSC_TOTALPRICE; ?> <? php echo wpsc_cart_total (); ?> <? php do_action ('wpsc_before_form_of_shopping_cart'); ?> <? PHP / ** * Как регистрационные формы, так и формы с описанием заказа должны быть в одном элементе формы, так как они отправляются вместе, нельзя использовать два элемента формы вместе без использования JavaScript. * / ?> <? php if (! is_user_logged_in () && get_option ('users_can_register') && get_option ('require_register')):?>

<? Php _e ('Еще не зарегистрировался?');?>

<? Php _e ('Чтобы купить у нас, вам понадобится аккаунт. Регистрация бесплатна и проста. Все, что вам нужно, это имя пользователя, пароль и действующий адрес электронной почты.');?>

<? php if (count ($ _ SESSION ['wpsc_checkout_user_error_messages'])> 0):?> <? php endif; ?>
" Size = "20" />
<? php endif; ?>

<? Php echo TXT_WPSC_CONTACTDETAILS; ?>

<? php / * echo TXT_WPSC_CREDITCARDHANDY; <br /> * /?> <? php echo TXT_WPSC_ASTERISK; ?> <? PHP if (count ($ _ SESSION ['wpsc_checkout_misc_error_messages'])> 0) { echo " \ n \ r"; } $ _SESSION ['wpsc_checkout_misc_error_messages'] = array (); ?>

colspan = '2'>

<? php echo wpsc_checkout_form_name ();?>

<? php echo wpsc_checkout_form_field ();?> <? php if (wpsc_the_checkout_item_error ()! = ''):?>

<? php echo wpsc_the_checkout_item_error (); ?>

<? php endif; ?>
Как вы нас нашли:
<? php // этот HTML отображает активированные платежные шлюзы?> <? php if (wpsc_gateway_count ()> 1): // если у нас включено более одного шлюза, предложить пользователю выбор?>

<? Php echo TXT_WPSC_SELECTGATEWAY;?>

<? php while (wpsc_have_gateways ()): wpsc_the_gateway (); ?>
<? php if (wpsc_gateway_internal_name () == 'noca') {?> <? php} else {?> <? php}?> <? php if (wpsc_gateway_form_fields ()):?>
<? php endif; ?>
<? php endween; ?> <? php else: // иначе выбора нет, придерживайтесь скрытой формы?> <? php while (wpsc_have_gateways ()): wpsc_the_gateway (); ?> ' type = 'hidden' /> <? php if (wpsc_gateway_form_fields ()):?>
<? php endif; ?> <? php endween; ?> <? php endif; ?>
<? php echo TXT_WPSC_TERMS1;?> 'class =' ​​termandconds '> <? php echo TXT_WPSC_TERMS2;?>
<? php if (get_option ('Terms_and_conditions') == ''):?> <? php endif; ?> <? php // exit ('<pre>'.print_r($wpsc_gateway->wpsc_gateways[0]['name'], true).''); if (count ($ wpsc_gateway-> wpsc_gateways) == 1 && $ wpsc_gateway-> wpsc_gateways [0] ['name'] == 'Noca') {} else {?> ' name = 'submit' class = 'make_purchase' /> <? php} / * еще:?>
<? php echo TXT_WPSC_PLEASE_LOGIN;?>
<? php echo TXT_WPSC_IF_JUST_Rurable;?>
<? PHP еще: эхо TXT_WPSC_BUYPRODUCTS; ENDIF; do_action ( 'wpsc_bottom_of_shopping_cart'); ?>

1 Ответ

0 голосов
/ 13 апреля 2011

Я не знаком с WP e-commerce, но я сделал нечто подобное. Я добавил следующую функцию и вызов функции, если установлен флажок «подписаться». Я предполагаю, что это должно произойти на странице ПОСЛЕ страницы, которую вы разместили здесь, поскольку это выглядит как подтверждение заказа, а не его обработка?

Я также включил в свою электронную почту объявление о регистрации, если они не установили флажок. Ударь их снова, понимаешь?

if(isset($_REQUEST['subscribe_to_newsletter']) && $_REQUEST['subscribe_to_newsletter'] == 'yes')
{

    echo mailchimp_subscribe($listid);

}

/**
 * Mailchimp Subscribe
 * This function subscribes people to the mailing list.
 * @param string Mailchimp subscription to add users to
 * @return string Success/Fail message
 */
function mailchimp_subscribe($listid)
{


    require_once "{$_SERVER['DOCUMENT_ROOT']}/lib/mailchimp/MCAPI.class.php";
    require_once "{$_SERVER['DOCUMENT_ROOT']}/lib/mailchimp/config.inc"; //contains username & password

    $api = new MCAPI($username, $password);
    if ($api->errorCode){
        // an error occurred while logging in
        echo "code:".$api->errorCode."\n";
        echo "msg :".$api->errorMessage."\n";
        //die(); // don't die, just do nothing
    }

/**
Note that if you are not passing merge_vars, you will still need to pass a "blank" array. That should be either:

$merge_vars = array('');
- or -
$merge_vars = '';

Specifically, this will fail:
$merge_vars = array();

Or pass the proper data as below...
 */

    $merge_vars = array( 'LNAME'=> $_REQUEST['name'], 'INTERESTS'=>'');

    // By default this sends a confirmation email - you will not see new members
    // until the link contained in it is clicked!

    $retval = $api->listSubscribe( $listId, $_REQUEST['email_address'], $merge_vars );

    if ($api->errorCode){

        return "<p>Oops! We were not able to subscribe you to the e-Newsletter mailing list. Maybe you are already subscribed? Please try our <a href=\"http://www.example.com/e-newsletter-signup\">e-Newsletter Subscription page, it should work better.</p>\n<div style='color:white'>\t<span style='color:white;'>code=".$api->errorcode."\n\tmsg=".$api->errormessage."</span></div>\n";
    } else {
        return "<p>Thank you for subscribing to the e-Newsletter. A newsletter confirmation email has been sent to your email address.</p>\n";

    }



}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...