標籤: 改變訂單狀態
- 該話題包含 2 個回覆,2 人參與,最後由
lmn40227 更新於 4 年、 11 月前 。
-
作者帖子
-
在無法修復 Woocommerce 偶然性的發生 一個訂單裡 產品出現 2 次, 但客戶支付了一次錢. 在這個前提下, 決定在客戶下訂單時, 判斷如果客戶的訂單裡的 item_name 發生重複的狀態下, 就將訂單的狀態改成 on-hold.
下面的程式碼 是我加在 function 頁面的, 測試的錯誤提示: SyntaxError: Unexpected token < in JSON at position 18, 求大神們指點下 下面程式碼哪裡有問題, 萬分感謝
add_filter( ‘woocommerce_cod_process_payment_order_status’, ‘prefix_filter_wc_complete_order_status’, 10, 3 );
add_filter( ‘woocommerce_payment_complete_order_status’, ‘prefix_filter_wc_complete_order_status’, 10, 3 );function prefix_filter_wc_complete_order_status( $status, $order_id, $order ) {
if( ! $order_id ) return;
$order = wc_get_order( $order_id );$all_products_id = array();
foreach ($order->get_items() as $item_key => $item ){
$item_name = $item->get_name();
$all_products_id[] = $item_name;
}$o_num = count($all_products_id);
if($o_num == 1){
return ‘processing’;
}else{$standard = 0;
for($i=1;$i<$o_num;$i++){
if($all_products_id[0] == $all_products_id[i]){
$standard++;
}
}if($standard > 0){
return ‘on-hold’;
}else{
return ‘processing’;
}}
沒明白這麼操作的意思,如果是客戶下單重複,而且你又只收到一次錢,那麼只有兩種可能,一種是未付款放棄購買,一種是已付款但交易中斷支付平臺資料回撥沒成功。
一個訂單裡 產品出現 2 次, 但客戶支付了一次錢
直接限制一個訂單裡只允許加入一個單獨購買產品就行了。
好的 謝謝
-
作者帖子
- 哎呀,回覆話題必需登入。