如何结合这些内容,以便仅使用虚拟订阅文章就可以自动完成订单?
add_action( 'woocommerce_payment_complete', 'woocommerce_subscriptions_auto_complete_order' );
function woocommerce_subscriptions_auto_complete_order( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
$order->update_status( 'completed' );
}
,这将自动完成虚拟产品。虽然我的订阅是虚拟的,但这没用
/**
* Auto Complete all WooCommerce virtual orders.
*
* @param int $order_id The order ID to check
* @return void
*/
function custom_woocommerce_auto_complete_virtual_orders( $order_id ) {
// if there is no order id, exit
if ( ! $order_id ) {
return;
}
// get the order and its exit
$order = wc_get_order( $order_id );
$items = $order->get_items();
// if there are no items, exit
if ( 0 >= count( $items ) ) {
return;
}
// go through each item
foreach ( $items as $item ) {
// if it is a variation
if ( '0' != $item['variation_id'] ) {
// make a product based upon variation
$product = new WC_Product( $item['variation_id'] );
} else {
// else make a product off of the product id
$product = new WC_Product( $item['product_id'] );
}
// if the product isn't virtual, exit
if ( ! $product->is_virtual() ) {
return;
}
}
/*
* If we made it this far, then all of our items are virtual
* We set the order to completed.
*/
$order->update_status( 'completed' );
}
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_virtual_orders' );
答案 0 :(得分:0)
我在https://action-a-day.com/autocomplete-orders-in-woocommerce-3-0/找到了一种更简单的方法
var epoch = null;
var accuracy = null;
app.get('/', (_req, res) => {
res.send({"epoch": epoch, "accuracy": accuracy});
})
app.post('/', (req, res) => {
epoch = req.body.epoch;
accuracy = req.body.accuracy;
console.log("Epoch: "+epoch);
console.log("Accuracy: "+accuracy);
res.send("");
})