我正在尝试在处理付款时使用 S2Members“付款通知 API”在 WooCommerce 中创建订单。
我打算每月一次将我的产品批量运送给所有当月付费访问的成员(member),我计划从 WooCommerce 导出 CSV 并运送到当月的所有订单。我认为这是跟踪我的已付款订单并确保所有付费订阅者都能收到他们的产品的最简单方法。
我用它作为我工作的基础: http://www.s2member.com/kb/building-an-api-notification-handler/
在我的 S2Member 通知 URL 中,我有以下内容:
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 的付款通知时,这应该是将我的收款人详细信息添加到产品“99”中的 1 个新的 woocommerce 订单中……但我似乎无法让它工作
我错过了什么?
最佳答案
基本上我在这里没有做的实际上是告诉数组变量是什么。通过使用 GET 解析 URL 创建变量,这非常有效。
关于php - 使用 S2Members API 和 wc_create_order 在 WooCommerce 中创建订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27566364/