[英]WooCommerce should NOT send order complete mail when order is subscription parent
[英]Retrieving a woocommerce parent order on purchase?
希望有人可以幫助解決這個問題。 這似乎是一個簡單的問題,但想知道是否有更簡潔的方法來做到這一點。
現在我有一個掛鈎,它會在 WooCommerce 訂單完成和更新訂單時運行。 該鈎子如下:
add_action('save_post_shop_order', 'printout', 10, 3);
function printout($post_ID, $post, $update)
{
$posttype = get_post_type($post_id);
write_to_log('Post Type:' . $posttype);
if (!is_admin()){
return;
}
if($update && get_post_type($post_id) === "shop_order"){
$msg = $post_ID;
$order = get_woocommerce_order($msg);
mainplugin($msg, $order);
}
}
add_action('woocommerce_thankyou', 'neworder_created', 10, 2);
function neworder_created($order_id){
$order = get_woocommerce_order($order_id);
mainplugin($order_id, $order);
}
在訂單更新時運行插件的掛鈎非常完美。 你會注意到我在那里有一些驗證邏輯:
if($update && get_post_type($post_id) === "shop_order"){
$msg = $post_ID;
$order = get_woocommerce_order($msg);
mainplugin($msg, $order);
}
這本質上是我試圖為新訂單復制的功能。 當人們在我的網站上購買時,會發生以下情況:按創建順序使用以下帖子類型進行 4 次數據庫調用:
發生的事情是新訂單的鈎子
add_action('woocommerce_thankyou', 'neworder_created', 10, 2);
在 wcdp_payment 的最后一次數據庫調用上運行,而不是我需要的; 它應該只在那個 shop_order 數據庫條目上運行(或者我猜父訂單是我需要的) 。 wcdp_payment 缺少訂單信息。
當帖子類型只有 shop_order 時,有沒有辦法讓它運行? 我知道我可以連接一些類似於我設置它來處理更新的邏輯,但我擔心的是我不知道這個掛鈎到底在做什么,所以它是否會到達所需的“shop_order”數據庫條目? 或者我應該使用不同的鈎子嗎?
謝謝您的幫助。 希望這是有道理的。
你好,親愛的互聯網上的陌生人。 我問了電腦,結果是這樣的:
add_action( 'save_post', 'retrieve_parent_order_on_purchase', 10, 3 );
function retrieve_parent_order_on_purchase( $post_id, $post, $update ) {
if ( $post->post_type == 'shop_order' && ! $update ) {
$parent_order = wc_get_order( $post_id );
// do something with $parent_order
}
}
我不知道這是否有效,但也許它可以幫助? 我很好奇它是否有效,如果它沒有讓我知道,那么我可以刪除這個答案。
不清楚這 4 個 db 調用是什么意思
購買 如果您的意思是希望在創建訂單並將其保存在數據庫中后調用函數neworder_created
,則可以使用此鈎子woocommerce_checkout_order_created
而不是woocommerce_thankyou
鈎子。
應該是這樣的。
add_action('woocommerce_checkout_order_created', 'neworder_created', 10, 1);
該鈎子已經傳遞了訂單對象,因此您需要將函數更改為。
function neworder_created($order){
$order_id = $order->get_id();
mainplugin($order_id, $order);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.