يتكون هذا المقتطف من العديد من مهام WooCommerce: إعداد “وورد بريس Cron Job” (أي جدولة خطاف يعمل في فترة زمنية محددة) ، والحصول على أوامر WooCommerce المكتملة من قاعدة البيانات ، وأخيراً إرسال بريد إلكتروني بسيط إلى مسؤول المتجر.
معقدة ، ولكن كالمعتاد يمكنك ببساطة نسخها ولصقها وإعادة تكييفها وفقًا لمواصفاتك الفريدة. على سبيل المثال ، أنا أستخدمه لإرسال بريد إلكتروني للاستبيان إلى كل عميل قدم طلبًا. هناك الآلاف من التطبيقات ، لذا فهذه مجرد البداية. يتمتع!
إعداد وظائف Cron المخصصة في WooCommerce / وورد بريس
Snippet (PHP): قم بإعداد وظيفة Cron لإرسال أوامر WooCommerce المكتملة إلى المسؤول كل 3 ساعات
كما كتبت في المقدمة ، هناك 3 أقسام رمز مميزة: القسم الذي أقوم فيه بإنشاء وظيفة cron وجدولتها كل 3 ساعات ، القسم الذي أستفسر فيه عن قاعدة البيانات عن الطلبات المكتملة في آخر 3 ساعات ، والمقطع الذي أقوم بإنشائه البريد الإلكتروني.
لعرض وظائف cron وتصحيحها في وورد بريس ، أستخدم “Advanced Cron Manager” من وورد بريس.org: https://وورد بريس.org/plugins/advanced-cron-manager/ . يرجى ملاحظة أن وظائف cron لن يتم تشغيلها ما لم تكن هناك حركة مرور متكررة على موقع الويب – وإلا يُنصح بإعدادها عبر cPanel للاستضافة.
/**
* @snippet Schedule Email to WooCommerce Admin Every 3 Hours
* @how-to Get CustomizeWoo.com FREE
* @sourcecode https://businessbloomer.com/?p=106360
* @author Rodolfo Melogli
* @compatible WooCommerce 3.5.4
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
// ---- ---- ----
// A. Define a cron job interval if it doesn't exist
add_filter( 'cron_schedules', 'bbloomer_check_every_3_hours' );
function bbloomer_check_every_3_hours( $schedules ) {
$schedules['every_three_hours'] = array(
'interval' => 10800,
'display' => __( 'Every 3 hours' ),
);
return $schedules;
}
// ---- ---- ----
// B. Schedule an event unless already scheduled
add_action( 'wp', 'bbloomer_custom_cron_job' );
function bbloomer_custom_cron_job() {
if ( ! wp_next_scheduled( 'bbloomer_woocommerce_send_email_digest' ) ) {
wp_schedule_event( time(), 'every_three_hours', 'bbloomer_woocommerce_send_email_digest' );
}
}
// ---- ---- ----
// C. Trigger email when hook runs
add_action( 'bbloomer_woocommerce_send_email_digest', 'bbloomer_generate_email_digest' );
// ---- ---- ----
// D. Generate email content and send email if there are completed orders
function bbloomer_generate_email_digest() {
$range = 180; // 3 hours in minutes
$completed_orders = bbloomer_get_completed_orders_before_after( strtotime( '-' . absint( $end ) . ' MINUTES', current_time( 'timestamp' ) ), current_time( 'timestamp' ) );
if ( $completed_orders ) {
$email_subject = "Completed Orders Email Digest";
$email_content = "Completed Order IDs: " . implode( "|", $completed_orders );
wp_mail( 'your@email.com', $email_subject, $email_content );
}
}
// ---- ---- ----
// E. Query WooCommerce database for completed orders between two timestamps
function bbloomer_get_completed_orders_before_after( $date_one, $date_two ) {
global $wpdb;
$completed_orders = $wpdb->get_col(
$wpdb->prepare(
"SELECT posts.ID
FROM {$wpdb->prefix}posts AS posts
WHERE posts.post_type = 'shop_order'
AND posts.post_status = 'wc-completed'
AND posts.post_modified >= '%s'
AND posts.post_modified <= '%s'",
date( 'Y/m/d H:i:s', absint( $date_one ) ),
date( 'Y/m/d H:i:s', absint( $date_two ) )
)
);
return $completed_orders;
}
المنشورات ذات الصلة:
WooCommerce: تعطيل البريد الإلكتروني لطلب العميل للطلبات المجانية
WooCommerce: أضف محتوى إلى بريد إلكتروني لطلب معين
WooCommerce: أضف الاسم الأول لطلب موضوع البريد الإلكتروني
WooCommerce: أضف CSS لطلب رسائل البريد الإلكتروني
WooCommerce: أضف ملاحظات الطلب إلى فواتير WooCommerce PDF
WooCommerce: تحديث Meta للمستخدم بعد طلب ناجح
WooCommerce: عيّن حالة الطلب المخصص للأوامر الجديدة
WooCommerce: إخفاء “شكرًا على التسوق معنا” @ Emails
WooCommerce: حفظ وعرض الوزن الإجمالي للطلب
WooCommerce: قم بتحديث قيمة حقل الطلب بعد نجاح الطلب
أين تضيف هذا المقتطف؟
يمكنك وضع مقتطفات PHP في الجزء السفلي من ملف function.php القالب الفرعي الخاص بك (احذف “؟>” إذا كان لديك هناك). من ناحية أخرى ، ينتقل CSS في ملف style.css الخاص بسمة الطفل. تأكد من أنك تعرف ما تفعله عند تحرير مثل هذه الملفات – إذا كنت بحاجة إلى مزيد من الإرشادات ، فيرجى إلقاء نظرة على الفيديو التعليمي المجاني الخاص بي “أين تضع تخصيص WooCommerce؟”
هل هذا المقتطف (لا يزال) يعمل؟
يرجى إعلامي في التعليقات إذا كان كل شيء يعمل كما هو متوقع. يسعدني مراجعة المقتطف إذا أبلغت بخلاف ذلك (يرجى تقديم لقطات شاشة). لقد اختبرت هذا الكود مع موضوع Storefront وإصدار WooCommerce المذكور أعلاه واستضافة صديقة لـ وورد بريس على PHP 7.3.
إذا كنت تعتقد أن هذا الرمز وفر لك الوقت والمال ، فلا تتردد في الانضمام إلى أكثر من 14000 مشترك في WooCommerce Weekly للحصول على تحديثات منشورات المدونة أو أكثر من 250 من مؤيدي Business Bloomer لمدة 365 يومًا من مزايا WooCommerce . شكرا لكم مقدما 🙂
هل تحتاج إلى مساعدة في WooCommerce؟
تحقق من دروس الفيديو المجانية هذه. يمكنك تعلم كيفية تخصيص WooCommerce بدون مكونات إضافية غير ضرورية ، وكيفية تكوين إعدادات البرنامج المساعد WooCommerce بشكل صحيح وحتى كيفية إتقان استكشاف أخطاء WooCommerce في حالة حدوث خطأ!

