我通过s2成员的网址接收了一些数据 - 它看起来像这样。
https://www.myurl.net/?s2_payment_notification=yes&user_id=106&first_name=John&last_name=Smith&payer_email=john@smith.com&address_one=AddressLine1&address_two=AddressLine2&address_three=AddressLine3&postcode=postcode&cv1=11318&coupon_code=
我在WooCommerce中使用它以编程方式使用wc_create_order创建订单。我设法让woocommerce识别并应用优惠券,如果它出现在URL中并创建订单。当URL中存在优惠券代码时,它可以很好地工作。但是,当它不存在时(如上面的URL),脚本无法完成,不会创建任何订单。
$order = wc_create_order();
$order->add_product(get_product($tier), 1);
$order->set_address($address, 'billing');
$order->set_address($address, 'shipping');
if ($coupon_code == '35off1' || $coupon_code == '35off2' || $coupon_code == '35off3')
{
$order->add_coupon($coupon_code, 6.65);
$order->set_total(6.65, 'order_discount');
}
$order->calculate_totals();
$order->payment_complete();
当变量为空时会发生什么?
我也试过这个无济于事:
$order = wc_create_order();
$order->add_product(get_product($tier), 1);
$order->set_address($address, 'billing');
$order->set_address($address, 'shipping');
if ($coupon_code == '35off1' || $coupon_code == '35off2' || $coupon_code == '35off3')
{
$order->add_coupon($coupon_code, 6.65);
$order->set_total(6.65, 'order_discount');
$order->calculate_totals();
$order->payment_complete();
}
else if (empty($coupon_code))
$order->calculate_totals();
$order->payment_complete();