使用S2Members API和wc_create_order在WooCommerce中创建订单

时间:2014-12-19 12:37:29

标签: php woocommerce stripe-payments wordpress

我正在尝试使用S2Members的“付款通知API”在处理付款时在WooCommerce中创建订单。

我将每月批量向我的产品批量发货给那个月付费访问的所有会员,我计划从WooCommerce导出CSV并发送到该月的所有订单。我认为这是跟踪我的付费订单并确保所有付费订阅者收到他们产品的最简单方法。

我用它作为我工作的基础: http://www.s2member.com/kb/building-an-api-notification-handler/

在我的S2Member通知网址中,我有以下内容:

http://www.MYURL.co.uk/?s2_payment_notification=yes&first_name=%%first_name%%&last_name=%%last_name%%&payer_email=%%payer_email%%&address_one=%%address_one%%&address_two=%%address_two%%&address_three=%%address_three%%&postcode=%%postcode%%

在我的mu-plugin中,我有以下PHP

<?php
add_action('init', 's2_payment_notification'); function s2_payment_notification()
{
    if(!empty($_GET['s2_payment_notification'])) 
                {
            if(!empty($_GET['first_name']) && !empty($_GET['last_name']) && !empty($_GET['payer_email']) && !empty($_GET['address_one']) && !empty($_GET['address_two']) && !empty($_GET['address_three']) && !empty($_GET['postcode'])) 
            { 

    $address = array(
        'first_name' => '%%first_name%%',
        'last_name'  => '%%last_name%%',
        'company'    => '',
        'email'      => '%%payer_email%%',
        'phone'      => '',
        'address_1'  => '%%address_one%%',
        'address_2'  => '%%address_two%%', 
        'city'       => '%%address_three%%',
        'state'      => '',
        'postcode'   => '%%postcode%%',
        'country'    => ''
    );

    $order = wc_create_order();
    $order->add_product( get_product( '99' ), 1 );
    $order->set_address( $address, 'billing' );
    $order->set_address( $address, 'shipping' );
    $order->calculate_totals();        
            }

            exit; 
                    }
}

自定义字段在S2Member中设置为地址和邮政编码,我有一个产品ID为'99'

从我所看到的情况来看,当从Stripe收到付款通知时,这应该是将我的收款人详细信息添加到1个产品'99'的新的woocommerce订单中...但我似乎无法让它工作< / p>

我错过了什么?

1 个答案:

答案 0 :(得分:0)

基本上我在这里做的事实上是告诉数组变量是什么。使用GET来解析URL来创建变量,这非常有效。