您好,我希望将10%的优惠券折扣应用于购物车我查看了之前用户的代码,并尝试修改并将其放入我的文件中,但它没有&#39为我工作 - 对于我做错了什么有帮助吗?
请记住,我将此代码用于我的APP API
以下是代码:
function create_wc_order($request) {
$user = wp_get_current_user();
if (!$user->ID) {
// exit if user not logged in
return;
}
$order = wc_create_order(array('customer_id' => $user->ID, 'customer_ip' => WC_Geolocation::get_ip_address()));
foreach ($request['products'] as $prd) {
$order->add_product( get_product( (int)$prd['id'] ), (int)$prd['qty']);
}
// set order address
$order->set_address( $request['billing'], 'billing' );
if ($request['shipping_as_billing'] == 'true') {
$order->set_address( $request['billing'], 'shipping' );
} else {
$order->set_address( $request['shipping'], 'shipping' );
}
// set payment gateway
$payment_gateways = WC()->payment_gateways->payment_gateways();
if ($request['payment_gateway'] == 'cod' || $request['payment_gateway'] == 'bacs' || $request['payment_gateway'] == 'payfort') {
$order->set_payment_method( $payment_gateways[$request['payment_gateway']] );
} elseif ($request['payment_gateway'] == 'sadad') {
//$order->set_payment_method( 'payfort' );
update_post_meta($order->id, '_payment_method_title', __('SADAD', 'payfort_fort'));
update_post_meta($order->id, '_payment_method', PAYFORT_FORT_PAYMENT_METHOD_SADAD);
} elseif ($request['payment_gateway'] == 'installments') {
//$order->set_payment_method( 'payfort' );
update_post_meta($order->id, '_payment_method_title', __('INSTALLMENTS', 'payfort_fort'));
update_post_meta($order->id, '_payment_method', PAYFORT_FORT_PAYMENT_METHOD_INSTALLMENTS);
}
$coupon_code = 'UNIQUECODE';
$order->add_coupon($coupon_code);
if (isset($coupon_code)) {
if ( ! WC()->cart->has_discount( $coupon_code ) ) {
WC()->cart->add_discount( $coupon_code );
}
}
$order->calculate_totals();
$order->update_status( 'Pending', 'Order created by API - ', true);
return $order->get_data();
}
add_action( 'rest_api_init', function () {
register_rest_route( 'wp/v2', '/create_order/', array(
'methods' => 'POST',
'callback' => 'create_wc_order',
) );
} );