لغو شدن اتوماتیک سفارشات ووکامرس

opdisweb

تازه وارد
16/4/20
3
0
1
سلام روزتون بخیر من یه سایت دارم سفارشات ووکامرس به صورت اتوماتیک لغو نمیشن به نظر شما باید چیکار کنم؟
همه سفارشات از اول در انتظار پرداخت میمونن معمولات سفارشات ووکامرس به صورت اتوماتیک لغو میشن اگر کابر بعد از چند ساعت پرداخت انجام نده
 

amin.hajihasani

تازه وارد
12/11/16
8
6
3
earth
am5.ir
سلام، اینجا دو حالت مطرحه یک: در اصل شما روشی میخواهید که سفارشات لغو شده یا درحال پردازش و ناموفق بعد از گذشت مدت زمان معینی بطور خودکار حذف شوند. و یا حالت دوم: محصولات on hold رو میخواهید لغو کنید که اگر مشکلتون حالت دوم هست بهتره رو مطالعه کنید. در غیر اینصورت از بابت حالت اول:
کد زیر را به فایل Functions.php قالب اضافه بفرمایید:
کد:
function update_order_status( $order_id ) {
$order = new WC_Order( $order_id );
$order_status = $order->get_status();
 
if ('cancelled' == $order_status || 'failed' == $order_status ||   'pending' == $order_status ) {
        $current_time = date('h:i:s');   
 
        sleep(600);       //   برابر با ۱۰ دقیقه
 
        wp_delete_post($order_id,true);   
   }
 
  • Like
  • Wow
Reactions: MahdiY and opdisweb

opdisweb

تازه وارد
16/4/20
3
0
1
سلام خیلی ممنون لطف کردید من به نتیجه رسید
من میخواستم بعد از مثلا یک ساعت سفارشاتی که داخل سایت در انتظار پرداخت هستن رو لغو کنه که پیدا کردم با کمک شما باید از قسمت
ووکامرس >> پیکربندی >> فعال کردن موجودی انبار رو تیکش رو میزاشتم که تیک نداشت تو سایت من
 

MahdiY

راهبر انجمن
25/1/13
2,164
70
48
اینترنت!
سلام، اینجا دو حالت مطرحه یک: در اصل شما روشی میخواهید که سفارشات لغو شده یا درحال پردازش و ناموفق بعد از گذشت مدت زمان معینی بطور خودکار حذف شوند. و یا حالت دوم: محصولات on hold رو میخواهید لغو کنید که اگر مشکلتون حالت دوم هست بهتره رو مطالعه کنید. در غیر اینصورت از بابت حالت اول:
کد زیر را به فایل Functions.php قالب اضافه بفرمایید:
کد:
function update_order_status( $order_id ) {
$order = new WC_Order( $order_id );
$order_status = $order->get_status();

if ('cancelled' == $order_status || 'failed' == $order_status ||   'pending' == $order_status ) {
        $current_time = date('h:i:s');  

        sleep(600);       //   برابر با ۱۰ دقیقه

        wp_delete_post($order_id,true);  
   }
سلام
منطق کد اشتباه است. استفاده از تابع sleep صحیح نیست.