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

标签 php woocommerce stripe-payments wordpress

我正在尝试在处理付款时使用 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=%%pos​​tcode%%

在我的 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/

相关文章:

php - 跟踪页面刷新时正在查看哪个选项卡

java - 应用程序关闭时 FCM 推送通知不起作用 Android

json - 无法修复 wordpress 中格式错误的 JSON

ajax - 使用分页的 Wordpress 延迟加载

dart - 如何在 Flutter 应用中实现支付?

stripe-payments - Stripe 一次付款。 -Ruby on Rails

php - php mysql 代码错误

php - Laravel迁移数组类型(数据库列存储数组)

php - 仅更改商店页面的 WooCommerce 产品列 CSS

ios - 在 iOS 中将 3D 安全与 Stripe 集成