使用PHP创建订单

使用PHP创建订单,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我已经成功地做到了90%,但是我在最后一步遇到了问题 我已经在WooCommerce中设置了3个优惠券,我已经链接到了s2Member,当用户使用优惠券注册时,我已经设法从脚本中定义的一些变量获取脚本,以便在WooCommerce中创建订单 问题是,当没有优惠券代码时-订单不会创建 下面是问题所在的代码片段。我怀疑这是因为我使用if,else if和else的方式。我真的不是一个PHP专业人士,所以任何建议都会令人惊讶 谢谢 if ($coupon_code == 'qwerty35') { $

我已经成功地做到了90%,但是我在最后一步遇到了问题

我已经在WooCommerce中设置了3个优惠券,我已经链接到了s2Member,当用户使用优惠券注册时,我已经设法从脚本中定义的一些变量获取脚本,以便在WooCommerce中创建订单

问题是,当没有优惠券代码时-订单不会创建

下面是问题所在的代码片段。我怀疑这是因为我使用if,else if和else的方式。我真的不是一个PHP专业人士,所以任何建议都会令人惊讶

谢谢

if ($coupon_code == 'qwerty35') {
$order = wc_create_order();
$order->add_product( get_product( $tier ), 1 );
$order->add_coupon($coupon_code, 6.65 );
$order->set_total( 6.65, 'order_discount' );
$order->set_address( $address, 'billing' );
$order->set_address( $address, 'shipping' );
$order->calculate_totals();
$order->payment_complete();      
}
elseif ($coupon_code == 'asdfg35') {
$order = wc_create_order();
$order->add_product( get_product( $tier ), 1 );
$order->add_coupon($coupon_code, 6.65 );
$order->set_total( 6.65, 'order_discount' );
$order->set_address( $address, 'billing' );
$order->set_address( $address, 'shipping' );
$order->calculate_totals();
$order->payment_complete();      
}
elseif ($coupon_code == 'zxcvb35') {
$order = wc_create_order();
$order->add_product( get_product( $tier ), 1 );
$order->add_coupon($coupon_code, 6.65 );
$order->set_total( 6.65, 'order_discount' );
$order->set_address( $address, 'billing' );
$order->set_address( $address, 'shipping' );
$order->calculate_totals();
$order->payment_complete();      
}
else {
$order = wc_create_order();
$order->add_product( get_product( $tier ), 1 );
$order->set_address( $address, 'billing' );
$order->set_address( $address, 'shipping' );
$order->calculate_totals();
$order->payment_complete();      
    }

这不是你的问题,但是你应该试着应用DRY(不要重复你自己)原则,代码将更容易阅读和维护。这段代码与你的代码完全相同<代码>$order=wc_创建_订单()$订单->添加产品(获取产品($tier),1)$订单->设置_地址($address,'billing')$订单->设置地址($address,'shipping');如果($优惠券代码=='qwerty35'| |$优惠券代码=='asdfg35'| |$优惠券代码=='zxcvb35'){$order->添加优惠券($优惠券代码,6.65);$order->设置_总计(6.65,'order_折扣')}$order->计算_总计()$订单->付款完成()谢谢@GBested我知道代码有点不确定,我还是个初学者。只是不明白为什么没有优惠券的时候订单就不能通过。