2017-04-10 47 views
1

在WooCommerce之前獲取結帳頁面順序ID,我需要得到order ID權WooCoommerce,付款前的結賬頁面,創建訂單時。支付過程

我看所有的會議,並試圖找出在訂貨時則用在了order_awaiting_payment會話付費,但我纔去付款需要它。
所以我想一個解決方案,使順序加載結帳頁面時(事實上使其準備金)和結帳時實際完成更新。

如何之前,爲了獲得在結帳頁面順序ID去在WooCommerce付款?

我認爲有一些掛鉤這一點,但我不能找到它。

回答

4

您可以使用woocommerce_checkout_order_processed行動鉤勾住了自定義的功能。
由於woocommerce 3.0+版本,這裏地處process_checkout()功能對應的核心代碼。

// Since WooCommerce version 3.0+ 
do_action('woocommerce_checkout_order_processed', $order_id, $posted_data, $order); 

及以下WooCommerce 3.0版本:

// Since WooCommerce version 2.1+ (before version 3.0+) 
do_action('woocommerce_checkout_order_processed', $order_id, $this->posted); 

所以有2案件取決於你所使用的woocommerce版本:

由於WooCommerce 3.0+可以使用2您的掛鉤功能中的其他參數,您將不需要創建訂單對象的實例,因爲您獲得$order已經作爲一個參數。
您可以還直接通過$posted_data參數來訪問發佈的數據。

add_action('woocommerce_checkout_order_processed', 'action_checkout_order_processed', 10, 3); 
function action_checkout_order_processed($order_id, $posted_data, $order) { 
    // Do something 
} 

由於WooCommerce 2.1+(WooCommerce 3之前。0),你只有$order_id作爲參數,所以你可能會需要得到$order物體wc_get_order()功能實例:

add_action('woocommerce_checkout_order_processed', 'action_checkout_order_processed', 10, 1); 
function action_checkout_order_processed($order_id) { 
    // get an instance of the order object 
    $order = wc_get_order($order_id); 

    // Do something 
} 

的代碼放在function.php文件您的活動孩子主題(或主題)或任何插件文件中。

0

如果你只是看看class-wc-checkout.php文件的行號935,你會看到有一個動作woocommerce_checkout_order_processed其通過$order_id作爲參數。

所以這應該爲你工作:

add_action('woocommerce_checkout_order_processed', 'wh_pre_paymentcall'); 

function wh_pre_paymentcall($order_id) { 

    //create an order instance 
    $order = wc_get_order($order_id); 
    //$payment_method = $order->payment_method_title; 
    //$status = $order->get_status(); 

    // write your custom logic over here. 
} 

代碼放在functions.php文件的活躍兒童主題(或主題)的。或者也可以在任何插件php文件中使用。

相關問題:WooCommerce Get Order Product Details Before Payment in Plugin(也可以參考意見)

希望這有助於!

+0

感謝您的回覆,但實際上我需要將order_id傳遞給結帳頁面中的iframe,所以我需要在結帳頁面加載時訪問它。我認爲這個鉤子在付款之前就會採取行動,並且當我想要這個鉤子時不能訪問order_id –