تكامل WooCommerce
اربط متجر WooCommerce باستخدام إضافة WordPress الخفيفة الخاصة بنا، Joryio (كان اسمها "Joryio for WooCommerce" قبل الإصدار 1.6.2، و"Joryio for WordPress" قبل الإصدار 1.6.25). زر Download Plugin في لوحة التحكم يعطيك دائمًا أحدث إصدار. زامن المنتجات والطلبات والعملاء، وفعّل تتبع السلات المتروكة.
ليس لديك متجر؟ الإضافة نفسها تربط أي موقع WordPress لتتبّع الصفحات ونماذج الموقع ورسائل in-app وإشعارات Web Push - راجع موقع WordPress (بدون متجر).
الميزات
- إضافة WordPress: تثبيت سهل عبر رفع الإضافة؛ تقدّم لوحة التحكم دائمًا أحدث إصدار
- نماذج الموقع: إرسالات Contact Form 7 وElementor Pro تنشئ جهة الاتصال أو تحدّثها وتسجّل
Form Submitted، وكل نموذج يحدد ما إذا كان يشترك في قائمة أيضًا. يعمل أيضًا دون WooCommerce (راجع النماذج: Elementor وContact Form 7) - مزامنة لحظية: تتزامن المنتجات والطلبات والعملاء والسلات لحظيًا عبر الإضافة
- تتبع واسترداد السلات المتروكة: تتبع السلات المتروكة واستردها بروابط الاستعادة وسجل السلات المستردة
- تتبع واجهة المتجر: تتبع مشاهدات الصفحات والمنتجات والفئات، والإضافة إلى السلة (كل إضافة، بما في ذلك WooCommerce Blocks)، وبدء إتمام الشراء (الكلاسيكي و Checkout block)
- التقاط Email: تعرّف تلقائيًا على العملاء من إتمام الشراء والنماذج
- مربع موافقة التسويق: اجمع موافقات Email (و SMS اختياريًا) عند إتمام الشراء والتسجيل، مع حفظ الدليل في كل طلب (راجع مربع موافقة التسويق)
- عناوين URL لاسترداد السلات: أنشئ روابط استعادة لإرجاع السلات المتروكة
- دعم متاجر متعددة: اربط عدة متاجر WooCommerce مع تقسيم لكل متجر
- لا يُحجب إتمام الشراء أبدًا: تُرسل أحداث الطلب في الخلفية، لذلك لا يمكن لـ Joryio إبطاء إتمام شراء المتسوق أو تعطيله
خطوات الإعداد
الخطوة 1: احصل على مفتاح API
- انتقل إلى الإعدادات → التكاملات في Joryio.
- في قسم WooCommerce، انقر الحصول على مفتاح API.
- انسخ مفتاح API المُنشأ (يبدأ بـ
jry_wc_).
الخطوة 2: ثبّت الإضافة
- نزّل إضافة Joryio لـ WordPress من الإعدادات → التكاملات في لوحة Joryio (زر تنزيل الإضافة).
- في إدارة WordPress، انتقل إلى Plugins → Add New → Upload Plugin.
- ارفع ملف ZIP للإضافة وانقر Install Now.
- انقر Activate.
الخطوة 3: اربط الإضافة
- في إدارة WordPress، انتقل إلى WooCommerce ← Joryio.
- الصق مفتاح API من الخطوة 1.
- تحقق من Server URL: يجب أن يكون عنوان API لمنطقتك،
https://api-eu1.joryio.com. - انقر Connect.
تعرض الصفحة بعد ذلك Connected to Joryio مع اسم المتجر وعنوانه وWorkspace ID.
بدءًا من الإصدار 1.6.32 من الإضافة، تحتوي صفحة الإعدادات على تبويبات. إلى أن يتصل المتجر يظهر تبويب Connection وحده؛ وبعد الاتصال:
| التبويب | ما يحتويه |
|---|---|
| Connection | المتجر وعنوانه وWorkspace ID، وTest connection وDisconnect وحالة المزامنة |
| Tracking & identity | Inject Tracking Script والتعرّف على الزوار من البريد الإلكتروني الذي يكتبونه |
| Store | Cart Abandonment Time وRecovery Link Reuses Its Cart For وTrack Guest Carts |
| Consent | مربع موافقة التسويق |
| In-app & web push | رسائل in-app وإشعارات Web Push |
| Forms | نماذج Contact Form 7 وElementor |
يحفظ كل تبويب إعداداته فقط، وتعرض الصفحة Settings saved. بعد الحفظ. لا يحتوي موقع بدون WooCommerce على تبويبَي Store وConsent. تعرض الإصدارات الأقدم الإعدادات نفسها في صفحة واحدة.
الخطوة 4: لا حاجة إلى إعداد إضافي
لا تنشئ مفاتيح WooCommerce REST API بنفسك: عند النقر على Connect تنشئ الإضافة مفتاح قراءة/كتابة باسم Joryio Integration (ضمن WooCommerce ← Settings ← Advanced ← REST API) وتسلّمه إلى Joryio، التي تستورد منتجاتك وعملاءك وطلباتك. لا تحذف هذا المفتاح - تتوقف المزامنة بدونه؛ وإن حذفته، انقر Connect مرة أخرى لإنشاء مفتاح جديد.
إعدادات المزامنة
اضبط خيارات المزامنة في الإعدادات → التكاملات → WooCommerce → علامة الإعدادات:
| الإعداد | الوصف | الافتراضي |
|---|---|---|
| مزامنة المنتجات | استيراد المنتجات من WooCommerce | مفعّل |
| مزامنة الطلبات | استيراد الطلبات وتحديث الحالات | مفعّل |
| مزامنة العملاء | استيراد بيانات العملاء | مفعّل |
| مزامنة السلات | تتبع السلات المتروكة | مفعّل |
| الأيام التاريخية | أيام سجل الطلبات المراد استيرادها | 90 |
تتبع واجهة المتجر
تُدخل الإضافة نص تتبع في كل صفحات واجهة المتجر. يُخزَّن كل حدث باسمه القياسي (عمود يُخزَّن باسم)، وهو الاسم نفسه الذي تستخدمه تكاملات Shopify و Magento وحزم SDK، فيعمل مقطع واحد أو مشغّل رحلة واحد مع كل متجر.
| الحدث | يُخزَّن باسم | متى يُرسل |
|---|---|---|
| Page View | Page Viewed | كل زيارة صفحة |
| Product Viewed | Product Viewed | صفحة منتج. يحمل حالة المخزون: in_stock (true أو false) و stock_status (in_stock أو out_of_stock أو backorder) |
| Category Viewed | Product List Viewed | صفحة فئة منتجات، مع category_id و category_name وعنوان الصفحة (الإضافة v1.3.1 أو أحدث) |
| Add to Cart | Product Added | كل إضافة بأي طريقة: زر AJAX في صفحات المتجر والفئات، والنموذج في صفحة المنتج، وأزرار WooCommerce Blocks والسلة المصغرة (الإضافة v1.3.1 أو أحدث؛ الإصدارات الأقدم كانت ترى زر AJAX فقط) |
| Checkout Started | Checkout Started | صفحة إتمام الشراء، الكلاسيكية أو Checkout block، مرة واحدة لكل سلة. إعادة تحميل صفحة إتمام الشراء ليست بداية ثانية |
| Identify | $identify | التقاط Email من النماذج |
العملاء المسجّلون الدخول (الإضافة 1.6.6 أو أحدث). عندما يكون العميل مسجّلًا الدخول إلى المتجر، توقّع الإضافة رقم عميل WooCommerce على خادم المتجر، ويحمل حدث identify هذا الإثبات. يتحقق Joryio منه ويضم تصفّح الزائر إلى جهة الاتصال التي تحمل رقم العميل هذا بالفعل - وليس أبدًا إلى جهة اتصال وُجدت حسب البريد الإلكتروني، لأن عدة جهات اتصال قد تشترك في البريد نفسه. يُعامَل البريد الذي يكتبه الضيف وفق إعداد المتجر التعرّف على الزوار من البريد الإلكتروني الذي يكتبونه. كانت الإصدارات الأقدم تتعرّف على العميل المسجّل الدخول بالبريد الإلكتروني فقط، ما قد يترك جهة اتصال ثانية تحمل البريد فقط بجانب جهة اتصال العميل؛ بعد التحديث، تُضم جهة الاتصال الثانية هذه إلى جهة اتصال العميل في المرة التالية التي يسجّل فيها العميل الدخول من المتصفح نفسه. بدءًا من الإضافة 1.6.21، عندما يتعذّر توقيع الإثبات (لا يوجد مفتاح API محفوظ، أو تعذّر الوصول إلى Joryio)، لا يرسل المتصفح شيئًا للعميل المسجّل الدخول ويحاول مجددًا في الصفحة التالية - ولا يعود أبدًا إلى التعريف بالبريد الإلكتروني وحده. كما يصل العميل الذي يُنشأ في wp-admin (Users → Add New) أو عبر REST API الخاصة بـ WooCommerce أو بالاستيراد إلى Joryio برقم العميل الخاص به، ويُرسَل العميل الذي لم يستلمه Joryio بعد قبل أول إثبات له.
المتصفحات المشتركة (الإضافة 1.6.26 أو أحدث). يمنح تسجيل الخروج من المتجر المتصفح زائرًا مجهولًا جديدًا، فلا يظهر الشخص التالي على الجهاز نفسه على أنه الشخص الذي سبقه. وعندما يسجّل عميل آخر الدخول في متصفح استخدمه عميل آخر، يحصل أولًا على زائر جديد، وعندما يجد Joryio أن زائر المتصفح يعود بالفعل إلى شخص آخر (مثل مدير المتجر الذي استخدمه من قبل)، تبدأ الإضافة زائرًا جديدًا وترسل إثبات تسجيل الدخول مرة أخرى. يبقى ملف الشخص السابق وسجلّه كما هما، ولا يُدمج شخصان أبدًا. وأثناء حسم ذلك تنتظر أحداث الصفحة بضع ثوانٍ على الأكثر.
تحمل أحداث المنتج product_id و variant_id (للتنويعة) و quantity و price و currency وحالة المخزون.
كيف تُحسب الإضافة إلى السلة. يسجّل المتجر كل إضافة لحظة حدوثها، ويرسلها متصفح المتسوق مباشرة بعدها، أو في الصفحة التالية عندما يعيد نموذج صفحة المنتج تحميل الصفحة. الإضافة الواحدة حدث واحد، أيًا كانت طريقتها. إعادة إضافة طلب سابق ("Order again") لا تُحسب.
التقاط Email
تُلتقط عناوين Email تلقائيًا من:
- حقل Email للفوترة عند إتمام الشراء
- نماذج الاشتراك في النشرة
- أي حقل إدخال Email
التعرّف على الزوار من البريد الإلكتروني الذي يكتبونه
بدءًا من الإصدار 1.6.22 من الإضافة، تحتوي صفحة إعدادات الإضافة (WooCommerce → Joryio → Tracking & identity) على Recognise visitors by the email they type. يكون مفعّلًا افتراضيًا، والإضافة الأقدم تتصرّف كأنه مفعّل.
- مفعّل (افتراضي) - البريد الإلكتروني الذي يكتبه الزائر عند الدفع أو في نموذج يعرّف متصفحه على أنه جهة الاتصال صاحبة هذا البريد: جهة الاتصال الموجودة (الأحدث نشاطًا، عندما تشترك عدة جهات اتصال في البريد - انظر أدناه) أو جهة اتصال جديدة. يُضم تصفح الزائر السابق إلى جهة الاتصال هذه، ولا تُنشأ جهة اتصال ثانية بالبريد نفسه. هذا ما تتوقعه معظم المتاجر. المقابل: من يكتب بريد شخص آخر يُتعرَّف عليه كذلك الشخص في هذا المتصفح - فقد يرى مثلًا رسائل in-app والمحتوى المخصّص لذلك الشخص.
- معطّل (هوية صارمة) - البريد المكتوب لا يعرّف المتصفح أبدًا. تذهب السلة والطلب وإرسال النموذج مع ذلك إلى جهة الاتصال صاحبة هذا البريد، فتصل رسائل السلة المتروكة إلى العنوان المكتوب. لا يُتعرَّف في المتصفح إلا على عميل مسجّل الدخول إلى المتجر.
يعرض Joryio الإعداد للقراءة فقط ضمن التكاملات → WooCommerce → الإعدادات، مع إصدار الإضافة ووقت آخر إبلاغ عنه - ويُضبط في الإضافة فقط. حفظه يُبلغ Joryio به فورًا، ويسري التغيير خلال دقائق.
تتبع السلة البريد الإلكتروني المكتوب، وكذلك البريد المصحَّح. تنتقل سلة الزائر إلى جهة الاتصال التي يشير إليها بريده في صفحة الدفع بمجرد كتابته، وليس فقط عند الإبلاغ عن السلة المتروكة. ابتداءً من الإضافة 1.6.30 تبقى السلة أيضًا مع متصفح الزائر نفسه منذ أول منتج يضيفه، فيكون متصفح الزائر الواحد جهة اتصال واحدة. عندما يصحح الزائر بريدًا كُتب بخطأ، يُزال العنوان الخاطئ مرة أخرى ويُطابَق العنوان المصحَّح مثل أي عنوان آخر، فينتقل الزائر والسلة إلى جهة الاتصال الصحيحة ولا تبقى أي جهة اتصال بالعنوان الخاطئ. لا يُزال العنوان المكتوب إلا ما دام لا شيء آخر في جهة الاتصال يدل على شخص: الطلب أو رقم الهاتف أو اختيار الموافقة أو حساب في المتجر أو عنوان كُتب قبل أكثر من يوم يُبقيه. لا يُصحَّح بهذه الطريقة إلا العنوان المكتوب في حقل البريد الإلكتروني في صفحة الدفع: العنوان المكتوب في نموذج على الموقع (Contact Form 7 أو Elementor أو مربع النشرة البريدية) لا يُزال أبدًا. ابتداءً من الإضافة 1.6.33 تُبلغ الإضافة Joryio بنوع الحقل الذي جاء منه كل بريد مكتوب.
عندما تشترك عدة جهات اتصال في بريد إلكتروني
قد يخص البريد الإلكتروني أكثر من جهة اتصال واحدة في Joryio (مثل زوجين، أو شخص واحد استُورد مرتين). عندما يطابق البريد الذي يكتبه الزائر عند الدفع عدة جهات اتصال، تذهب السلة وعملية الدفع والطلب إلى جهة الاتصال الأحدث نشاطًا - وهي القاعدة نفسها التي يستخدمها الاستيراد وواجهة API والنماذج، فلا يتوزع سجل الشخص الواحد بين جهتي اتصال. وبمجرد أن تختار عملية الدفع جهة اتصال، تبقى معها: تحديثات السلة اللاحقة والموافقة والسلة المتروكة والطلب وتحديثات حالته تذهب كلها إلى جهة الاتصال نفسها، حتى لو تغيّرت جهة الاتصال الأخرى في الأثناء. العميل المسجّل دخوله في المتجر يذهب دائمًا إلى جهة الاتصال التي تحمل حساب العميل الخاص به في المتجر. لا تُدمج جهات الاتصال أبدًا، ويظل إلغاء الاشتراك ساريًا على كل جهات الاتصال التي تحمل هذا البريد.
رسائل in-app وإشعارات Web Push
ابتداءً من الإصدار v1.5.0 من الإضافة، يحمّل سكربت التتبع في متجرك أيضًا حزمة Joryio للويب (SDK) من https://sdk.joryio.com/web/1/joryio.min.js (أحدث إصدار من 1.x). تذهب طلبات البيانات الخاصة بها إلى خادم Joryio الخاص بمتجرك، مثل سكربت التتبع. الإعدادات موجودة في WordPress ضمن WooCommerce → Joryio → In-app & web push:
| الإعداد | الافتراضي | ماذا يفعل |
|---|---|---|
| In-app messages | مفعّل | يعرض رسائل in-app من Joryio في المتجر |
| Allow HTML in-app messages | مفعّل | يعرض أيضًا الرسائل المبنية بمحرر HTML. تُعرض داخل إطار محمي في متجرك: لا تعمل السكربتات المكتوبة فيها، ولا تستطيع الرسالة الوصول إلى صفحات متجرك أو إرسال طلبات شبكة خاصة بها |
| Web push | معطّل | يتيح للمتسوقين الاشتراك في إشعارات المتصفح |
المتاجر التي تُحدّث من إصدار أقدم تحصل على القيم الافتراضية نفسها. يحمّل سكربت التتبع حزمة SDK، لذا أبقِ Inject Tracking Script مفعّلًا.
لا يُحتسب شيء مرتين. تستخدم حزمة SDK معرّف الزائر المجهول الخاص بسكربت التتبع، فينتمي الاثنان إلى ملف تعريف واحد. لا يزال سكربت التتبع وحده يعرّف عناوين البريد الإلكتروني، ولا ترسل حزمة SDK مشاهدات صفحات أو بدايات جلسات خاصة بها: أحداث الصفحات والسلة تأتي من سكربت التتبع كما كانت.
Web Push. لا يقبل المتصفح service worker الخاص بالإشعارات إلا من عنوان متجرك نفسه. عند تفعيل Web push، تكتب الإضافة ملف joryio-sw.js في مجلد الموقع، وتجيب أيضًا على https://your-store/joryio-sw.js من خلال WordPress؛ يغطي الـ worker الموقع كله ويحمّل الـ worker المستضاف لدى Joryio. يُطلب من المتسوقين الاشتراك عبر رسالة in-app لطلب الاشتراك في الإشعارات، لذا أبقِ رسائل in-app مفعّلة وفعّل Web Push للتطبيق في Joryio أيضًا. يتطلب Web Push أن يكون المتجر في جذر النطاق (وليس في مجلد فرعي مثل /shop/). إذا لم تتمكن الإضافة من كتابة الملف، تعرض صفحة الإعدادات السطر الوحيد الذي عليك رفعه بنفسك. عند إيقاف Web Push يقدّم العنوان نفسه worker يزيل نفسه من متصفحات الزوار.
فعّل إشعارات الويب في Joryio أيضًا. أنشأ ربط المتجر تطبيقًا له في Joryio (الإعدادات → التطبيقات، باسم المتجر). افتحه، وانقر على الجرس (Push) ثم تفعيل Web Push: يُنشئ ذلك مفاتيح إشعارات الويب الخاصة بالمتجر، التي يقرؤها SDK في متجرك بنفسه - لا شيء لنسخه. ثم أنشئ رسالة داخل التطبيق بزر مضبوط على اطلب تفعيل الإشعارات واعرضها في ذلك التطبيق؛ يمكن للمتسوقين الذين يوافقون تلقي حملات الإشعارات وخطوات الرحلات.
مربع موافقة التسويق
بدءًا من الإصدار v1.3.0 من الإضافة، يمكنك أن تسأل المتسوقين إن كانوا يريدون رسائلك التسويقية، عبر مربع اختيار في الصفحات التي تختارها. فعّله في WordPress من WooCommerce → Joryio → Consent.
| الإعداد | ما يفعله | الافتراضي |
|---|---|---|
| Show the checkbox on (إظهار المربع في) | اختر أيًا من: Checkout (classic shortcode checkout) وهو إتمام الشراء الكلاسيكي، و Checkout (block checkout) وهو إتمام الشراء بالكتل، و My Account registration form وهو نموذج التسجيل في حسابي | كلها معطلة |
| Checkbox text (نص المربع) | النص بجانب المربع. اتركه فارغًا لاستخدام "Yes, I'd like to receive news and offers by email" | النص الافتراضي |
| Ticked by default (محدد افتراضيًا) | يُظهر المربع محددًا مسبقًا في إتمام الشراء الكلاسيكي ونموذج التسجيل | معطل |
| SMS consent (موافقة SMS) | يضيف مربعًا ثانيًا في إتمام الشراء للرسائل النصية، لرقم هاتف الفوترة، بنص خاص به | معطل |
أين يظهر المربع
- إتمام الشراء الكلاسيكي: أسفل ملاحظات الطلب.
- إتمام الشراء بالكتل: في قسم الطلب، عبر واجهة Additional Checkout Fields API في WooCommerce. يتطلب ذلك WooCommerce 8.9 أو أحدث؛ وفي الإصدارات الأقدم تخبرك صفحة الإعدادات بأن المربع لا يمكن أن يظهر هناك. يُظهر إتمام الشراء بالكتل المربع دائمًا غير محدد.
- نموذج التسجيل: في نموذج التسجيل في حسابي (مربع Email فقط).
ما يفعله التحديد في Joryio
- محدد: تُشترك جهة الاتصال في Email (أو SMS) في Joryio. ويُظهر سجل اشتراكاتها المصدر
woocommerce_checkoutأوwoocommerce_registrationوالنص الدقيق الذي رأته. - متسوق جديد: يُحتسب التحديد في نموذج التسجيل في My Account، والتحديد عند الدفع الذي أُرسل قبل الطلب، فورًا فقط لمشترٍ معروف أو لمن هو مشترك بالفعل. ويبقى أي شخص آخر معلّقًا حتى طلبه هو مع تحديد المربع أو نقره على رسالة التأكيد، ما لم تختر احتسابه فورًا - راجع موافقات المتسوقين الجدد. التحديد الذي يأتي مع الطلب يُحتسب دائمًا. يُسجَّل تحديد التسجيل المعلّق بالسبب
registration_tick_pending_confirmation(وتحديد الدفع المعلّق:checkout_tick_without_order). - غير محدد: لا يتغير شيء. لا يُعامل المربع غير المحدد أبدًا كإلغاء اشتراك، لذا يبقى من اشترك في مكان آخر مشتركًا. الاستثناء الوحيد هو الإعداد الاختياري المربع غير المحدد يلغي الاشتراك، وهو معطّل افتراضياً.
- ألغى اشتراكه سابقًا: لا يعيد التحديد اشتراك من ألغى اشتراكه، أو من كان عنوانه أو رقمه محظورًا. ويمكنه الاشتراك مجددًا من مركز التفضيلات. تحديد العميل المسجّل الدخول هو الاستثناء - راجع ما تفعله موافقة المتجر أو إلغاؤه.
- مشترك بالفعل: لا يُعاد كتابة شيء، فيبقى تاريخ الاشتراك الأصلي ومصدره.
- الإثبات المسجَّل: كل تغيير يُحدثه مربع (تحديد، أو تحديد معلّق، أو إلغاء اشتراك بمربع غير محدد) يسجّل النص الذي رآه المتسوق، والوقت، والصفحة (صفحة الدفع أو صفحة حسابي)، وبدءًا من الإضافة 1.6.31 عنوان IP للمتسوق: عنوان IP للعميل في الطلب عند الدفع، وعنوان طلب التسجيل لنموذج التسجيل. يظهر عنوان IP فقط لأعضاء الفريق المسموح لهم برؤية البيانات الشخصية، ويُضمَّن عندما يطلب الشخص بياناته، ويُحذف عند محو بياناته.
- SMS: الموافقة لرقم هاتف الفوترة. إذا لم يكن لجهة الاتصال رقم هاتف بعد، يُضاف هذا الرقم؛ ولا يُستبدل أبدًا رقم موجود بالفعل لدى جهة الاتصال. ويبقى الرقم الذي ردّ بـ STOP ملغى الاشتراك.
متى تُحتسب علامة الموافقة
الإضافة 1.6.13 أو أحدث، في صفحة الدفع الكلاسيكية وصفحة الدفع بالكتل: WooCommerce → Joryio → Consent → When a shopper ticks the checkout opt-in.
| الخيار | ما يحدث |
|---|---|
| Only when the order is placed (الافتراضي) | يصل الاختيار إلى Joryio مع الطلب. المتسوق الذي يحدّد المربع ثم يغادر لا يُشترك. |
| Record consent immediately | يصل التحديد إلى Joryio فور قيام المتسوق به، قبل الطلب. يُحتسب المشترون والمشتركون المعروفون فورًا؛ ويُحتسب الضيف الجديد بعد طلبه أو بعد تأكيده عبر البريد الإلكتروني (أدناه). إذا ألغى المتسوق تحديد المربع مرة أخرى في نفس عملية الدفع، يُسحب ذلك التحديد - هو وحده: يبقى أي اشتراك قدّمه في مكان آخر. ويحمل حدث السلة المتروكة أيضًا المربع كما تركه المتسوق. |
من يُحتسب فورًا مع Record consent immediately (1.6.15 أو أحدث):
| المتسوق | ما يفعله التحديد قبل الطلب |
|---|---|
| مشترٍ معروف (لدى Joryio طلب لجهة الاتصال) أو شخص مشترك بالفعل في البريد الإلكتروني أو SMS | يُحتسب فورًا: يُشترك، فيمكن أن يصله تذكير السلة المتروكة. |
| ضيف جديد | يبقى معلّقًا: يُسجَّل التحديد (النص والوقت والمتجر وعملية الدفع)، لكن جهة الاتصال لا تُشترك ولا تتلقى أي تسويق - ويُتخطّى تذكير السلة المتروكة بسبب بانتظار التأكيد. يشترك عند وصول طلبه مع تحديد المربع، وكذلك عند النقر على بريد التأكيد إذا فعّلته. |
| شخص ألغى اشتراكه ولم يطلب | يبقى اشتراكه ملغى. ويتبع طلبه عندها القواعد أدناه. |
السبب: عند الدفع كضيف يمكن لأي شخص كتابة أي بريد إلكتروني. دون هذه القاعدة يمكن لبوت أن يضع منتجًا في السلة ويكتب بريد شخص غريب ويحدّد المربع ثم يغادر - فيُشترك شخص لم يطلب قط.
ضمانتان في التكاملات → WooCommerce → الإعدادات (للمسؤولين فقط؛ ويُسجَّل كل تغيير في سجل التدقيق):
-
إرسال رابط تأكيد بالبريد الإلكتروني إلى الضيوف الجدد - معطّل افتراضيًا، لأن العنوان كُتب عند الدفع ولم يتحقق منه أحد بعد. عند التفعيل، يتلقى الضيف الجديد المعلّق رسالة واحدة؛ ورابطها يشركه (المصدر
double_opt_in). وتستخدم قالب تأكيد double opt-in إذا اخترت واحدًا. -
تحديدات الموافقة لكل متسوق في الساعة - الافتراضي 3، لكل عنوان IP ولكل عملية دفع ولكل بريد إلكتروني. يتم تجاهل التحديدات التي تتجاوز الحد ولا يحمل حدث السلة المتروكة لتلك العملية أي موافقة؛ ويظل الطلب يسجّل الاختيار. وللإضافة الحد نفسه (Opt-in ticks per shopper per hour، الافتراضي 3) ويوقف مثل هذا التحديد قبل إرساله.
-
لا تُحتسب إلا علامة يضعها المتسوق بنفسه، في الخيارين. المربع المعروض محددًا مسبقًا (Ticked by default) لا يُحتسب إلا بعد أن يتفاعل معه المتسوق: إذا لم يلمسه، فليس موافقة - لا فورًا ولا مع الطلب. إزالة العلامة ثم وضعها مرة أخرى تُحتسب.
-
يُرسل كل تغيير مرة واحدة؛ فتح صفحة الدفع أو إعادة تحميلها لا يرسل شيئًا.
-
من ألغى اشتراكه لا يُعاد اشتراكه إلا كما هو موضح في ما تفعله موافقة المتجر أو إلغاؤه. إزالة العلامة لا تلغي اشتراك أحد أبدًا - إنها تسحب فقط العلامة التي وُضعت في صفحة الدفع تلك.
-
يجب أن يعرف المتجر بريد المتسوق الإلكتروني عند وضع العلامة (مكتوبًا في حقل البريد في صفحة الدفع، أو أن المتسوق مسجّل الدخول). إن لم يعرفه بعد، ينتقل الاختيار مع السلة المتروكة أو مع الطلب.
مع Record consent immediately، يكون التحديد موافقة تسويقية بحد ذاته - غير مرتبط بعملية شراء. اجعل نص المربع يوضح ما يوافق المتسوق على تلقيه وعبر أي قناة (مثل "Yes, I'd like to receive news and offers by email")، واترك المربع غير محدد افتراضيًا ومنفصلًا عن قبول شروطك، واذكره في إشعار الخصوصية. يسجّل Joryio مع كل تحديد النص المعروض والوقت والمتجر وعملية الدفع وعنوان IP الخاص بالمتسوق. يبقى تحديد الضيف الجديد معلّقًا حتى طلبه أو تأكيده، فلا يتلقى أحد تسويقًا لأن شخصًا آخر كتب عنوانه؛ ولا يُرسل بريد التأكيد إلا إذا فعّلته. ويصل تذكير السلة المتروكة عندها إلى المتسوق المشترك كرسالة تسويقية.
معروضة في Joryio، تُضبط في الإضافة
تعرض التكاملات → WooCommerce → الإعدادات إعدادات الموافقة عند الدفع الخاصة بالإضافة في بطاقة Store checkout opt-in (set in your store)، للقراءة فقط: هل الخانة معروضة (في صفحة الدفع الكلاسيكية أو صفحة الدفع بالكتل)، وTicked by default وWhen a shopper ticks the checkout opt-in، مع إصدار الإضافة ووقت آخر إبلاغ عنها. تغييرها يتم في الإضافة فقط، ضمن WooCommerce → Joryio → Consent؛ ولا يغيّرها Joryio أبدًا. مع Record consent immediately، تعرض البطاقة أيضًا إعدادات Joryio التي تحدد حينها ما يفعله التحديد: Opt-ins from new shoppers وبريد التأكيد والحد في الساعة.
الإضافة بالإصدار 1.6.16 أو أحدث تُبلغ عنها مع كل طلب ترسله إلى Joryio - السلال والسلال المتروكة والطلبات والعملاء والمنتجات وغيرها - ومرة أخرى عند حفظ أحدها. يظهر أي تغيير، مثل إصدار جديد للإضافة بعد التحديث، من الطلب التالي؛ ويُسجَّل الإبلاغ الذي لم يتغير من جديد مرة واحدة في الساعة على الأكثر، لذا قد يكون عمر آخر إبلاغ حتى ساعة. مع إضافة أقدم تعرض البطاقة Not reported yet - update the plugin.
موافقات المتسوقين الجدد
يحدد الإعداد موافقات المتسوقين الجدد (الذين لم يشتروا بعد) في التكاملات → WooCommerce → الإعدادات (للمسؤولين فقط؛ ويُسجَّل كل تغيير في سجل التدقيق) ما تفعله موافقة من شخص لم يشترِ بعد:
| الخيار | ما يحدث |
|---|---|
| الانتظار حتى يطلبوا أو يؤكدوا عبر البريد الإلكتروني (افتراضي، موصى به) | تبقى موافقة المتسوق الجديد معلّقة حتى طلبه هو مع تحديد المربع أو نقره على رسالة التأكيد (إذا فعّلت إرسال رابط تأكيد بالبريد الإلكتروني إلى الضيوف الجدد). |
| الاحتساب فورًا (أقل صرامة - يمكن لأي زائر إدخال أي بريد إلكتروني) | تُحتسب فورًا. يمكن لأي زائر كتابة أي عنوان بريد إلكتروني، لذا يمكن لشخص ما أن يشترك باسم شخص آخر؛ ويمكن لهذا الأخير إلغاء الاشتراك بنقرة واحدة. |
يغطي كل موافقة تصل من دون طلب: مربع نموذج التسجيل في My Account، ومع Record consent immediately - التحديد عند الدفع أيضًا. وفي الحالتين:
- يُحتسب المشتري المعروف أو المشترك بالفعل فورًا؛
- التحديد الذي يأتي مع طلب المتسوق نفسه يُحتسب دائمًا؛
- يُطبَّق إلغاء الاشتراك فورًا دائمًا؛
- يبقى حد تحديدات الموافقة لكل متسوق في الساعة ساريًا.
هذا ليس الإعداد نفسه When a shopper ticks the checkout opt-in في الإضافة: ذلك الإعداد يحدد متى يُرسَل التحديد عند الدفع - مع الطلب أو فور حدوثه؛ وهذا الإعداد يحدد ما تفعله الموافقة المبكرة من متسوق جديد. مع Only when the order is placed، يأتي التحديد عند الدفع مع الطلب ويُحتسب دائمًا، لذا يغطي هذا الإعداد موافقات التسجيل والحساب فقط.
ما تفعله موافقة المتجر أو إلغاؤه
| ما يرسله المتجر | ما يفعله Joryio |
|---|---|
| تحديد موافقة عند الدفع كـضيف | يشترك جهة اتصال ليس لها اشتراك في تلك القناة بعد. ما لم يكن إعداد المتجر أدناه مفعّلًا، لا يعيد أبدًا اشتراك من ألغى اشتراكه - فعند الدفع كضيف يمكن لأي شخص كتابة أي بريد إلكتروني. |
| موافقة من عميل مسجّل الدخول (طلب تم أثناء تسجيل الدخول إلى حساب في المتجر - الإضافة 1.6.1 أو أحدث)، بتاريخ لاحق لآخر إلغاء اشتراك لجهة الاتصال | يعيد أيضًا اشتراك جهة اتصال ألغت اشتراكها عبر رابط إلغاء الاشتراك أو زر الإلغاء بنقرة واحدة، أو صفحة التفضيلات، أو الـ API، أو عضو في الفريق، أو إلغاء هذا المتجر نفسه. |
| موافقة عند الدفع أو في سجل العميل، مع تفعيل السماح لموافقات الدفع بإعادة اشتراك من ألغوا اشتراكهم (معطّل افتراضيًا) | يعيد اشتراك جهة اتصال ألغت اشتراكها - حتى بعد الدفع كضيف - عندما يكون وقت الموافقة لدى المتجر بعد آخر إلغاء اشتراك لها. الخطر: عند الدفع كضيف لا يستطيع WooCommerce أن يخبر Joryio من هو المشتري، لذا يمكن لمن يكتب بريد شخص آخر عند الدفع أن يعيد اشتراكه؛ ويمكنه دائمًا إلغاء الاشتراك مجددًا بنقرة واحدة. تبقى الحالات أدناه التي لا تُلغى أبدًا سارية. |
| مربع غير محدد | لا تغيير - لا يُعد أبدًا إلغاءً للاشتراك. ما لم تفعّل المربع غير المحدد يلغي الاشتراك في المتجر (معطّل افتراضياً). |
| ما لا تلغيه أبدًا أي موافقة من المتجر، سواء كان الإعداد مفعّلًا أو معطّلًا | شكوى البريد العشوائي، والارتداد الدائم، والحظر على مستوى المؤسسة، ومساحة عمل أخرى، وإلغاء اشتراك مسجّل على جهة اتصال أخرى بالبريد أو الهاتف نفسه، وSTOP في SMS. |
- الإعداد موجود في التكاملات → WooCommerce → الإعدادات، واحد لكل اتصال متجر، معطّل افتراضيًا. يمكن للمسؤولين فقط تغييره، ويُسجَّل كل تغيير في سجل التدقيق.
- إعادة الاشتراك تخص جهة الاتصال هذه وحدها؛ وتبقى جهات الاتصال الأخرى بالبريد أو الهاتف نفسه غير مشتركة. ويذكر سجل جهة الاتصال السبب، مثل أُعيد الاشتراك عبر صفحة الدفع في المتجر (عميل مسجّل الدخول) بعد إلغاء الاشتراك عبر صفحة التفضيلات.
- SMS: عند تفعيل التأكيد المزدوج (double opt-in) لـ SMS، ترسل إعادة الاشتراك رسالة واحدة "رد بـ YES" وتبقى جهة الاتصال قيد الانتظار حتى ترد. ولا تعود جهة اتصال أرسلت
STOPإلا بهذه الطريقة - وعند إيقاف التأكيد المزدوج لـ SMS لا تعيد موافقة المتجر اشتراكها أبدًا. - موافقة المتجر تشترك في القناة لا في قائمة: القائمة التي تتطلب التأكيد المزدوج ترسل رسالة التأكيد عند انضمام الشخص إليها.
المربع غير المحدد يلغي الاشتراك (اختياري)
للمتاجر ذات سياسة الموافقة الصارمة، تتضمن الإضافة 1.6.27 أو أحدث إعداداً اختيارياً في WooCommerce → Joryio → Consent، بجانب When a shopper ticks the checkout opt-in: An unticked opt-in box at checkout or registration unsubscribes the person. وهو معطّل افتراضياً.
| الإعداد | ما يفعله المربع غير المحدد |
|---|---|
| معطّل (افتراضي) | لا شيء. المربع غير المحدد لا يغيّر حالة أي شخص أبداً. |
| مفعّل | المربع الذي عُرض وأُرسل دون تحديد - مع طلب تم تقديمه، أو في نموذج التسجيل - يسجّل إلغاء اشتراك لقناة ذلك المربع (Email أو SMS). للعملاء المسجّلين الدخول فقط، الذين تحقق منهم المتجر. |
| مفعّل، مع Also for guest checkouts | الأمر نفسه أيضاً عند الدفع كضيف وعند تسجيل حساب جديد. عند الدفع كضيف يمكن لأي شخص كتابة بريد شخص آخر - فقد يلغي ضيف اشتراك شخص آخر. تسجيل حساب جديد يُعد ضيفاً: المتجر لا يتحقق من عنوان البريد. |
- يُسجَّل إلغاء الاشتراك مثل أي إلغاء آخر: في سجل اشتراكات جهة الاتصال (المصدر
woocommerce_checkout/woocommerce_registration، السببcheckout_box_unticked، مع النص المعروض بجانب المربع) وكحدثmessage.unsubscribed. - حتى من لم يوافق قط: عند تشغيل الإعداد، يلغي المربع غير المحدد اشتراك الشخص حتى لو لم يوافق قط (Not Set يصبح Unsubscribed). ومثل كل إلغاء اشتراك، ينطبق على كل جهة اتصال لها البريد الإلكتروني أو الهاتف نفسه في مساحة العمل، والتراجع عنه يتطلب موافقة جديدة.
- لا يحدث أبداً لمربع لم يُعرض (مربع SMS فقط حيث يُعرض)، ولا من مزامنة طلبات سابقة، ولا لمربع أُزيل تحديده قبل تقديم الطلب - إزالة التحديد أثناء الدفع تسحب فقط تحديد عملية الدفع نفسها. لا يشترك أو يعيد اشتراك أي شخص أبداً، ولا يغيّر حظراً بسبب ارتداد أو شكوى.
- تعرض Integrations → WooCommerce → Settings الإعداد للقراءة فقط. الإصدارات الأقدم لا تبلّغ عنه، ويعامله Joryio على أنه معطّل.
ما يُسجَّل
يُحفظ كل اختيار في طلب WooCommerce (أو لدى العميل في حالة نموذج التسجيل) ويُرسل إلى Joryio مع الطلب أو العميل:
- هل حُدد كل مربع (نعم أو لا)
- التاريخ والوقت
- مكان ظهوره (إتمام الشراء الكلاسيكي أو إتمام الشراء بالكتل أو نموذج التسجيل)
- النص الظاهر بجانب المربع
- عنوان URL لمتجرك
تعرض شاشة الطلب في WooCommerce الاختيار المسجل أسفل عنوان الفوترة.
بموجب GDPR (الاتحاد الأوروبي والمملكة المتحدة)، لا يُعد المربع المحدد مسبقًا موافقة صالحة - يجب أن يحدده المتسوق بنفسه. اترك Ticked by default معطلًا ما لم تكن متأكدًا من أن القواعد حيث تبيع تسمح بذلك. تعرض صفحة الإعدادات هذا التحذير بجانب الخيار.
النماذج: Elementor وContact Form 7
بدءًا من الإصدار v1.6.0 ترسل الإضافة إلى Joryio إرسالات نماذج Contact Form 7 وElementor Pro في موقعك. كل إرسال ينشئ جهة الاتصال، أو يحدّث جهة الاتصال التي لها البريد الإلكتروني نفسه (أو رقم الهاتف نفسه إن لم يكن في النموذج بريد إلكتروني)، ويسجّل الحدث Form Submitted. لا يغادر موقعك إلا الحقول التي تربطها.
Contact Form 7
- في WordPress انتقل إلى WooCommerce → Joryio (في موقع دون WooCommerce: Settings → Joryio). يعرض تبويب Forms كل نماذج Contact Form 7
- حدّد Send this form to Joryio
- اختر List (اختياري - دون قائمة يحفظ النموذج جهة الاتصال والحدث فقط)
- اختر وضع List subscription (انظر أدناه)، وفي وضع الموافقة اختر حقل acceptance في النموذج
- اربط الحقول: كل حقل إلى Email أو Phone أو First name أو Last name أو Custom attribute (اكتب مفتاح السمة) أو Do not send. اربط حقل بريد إلكتروني أو هاتف على الأقل
- انقر Save form settings (للمسؤولين فقط)
يُرسَل الإرسال بعد أن يقبله Contact Form 7 ويرسل بريده الخاص.
Elementor Pro
- حرّر النموذج في Elementor، وتحت Actions After Submit أضف Joryio
- في قسم Joryio اختر List ووضع List subscription. في وضع الموافقة أدخل Consent field ID - معرّف حقل Acceptance في النموذج، من تبويب Advanced الخاص بالحقل
- أدخل معرّفات الحقول لـ Email وPhone وFirst name وLast name، والسمات المخصصة سطرًا لكل سمة بالشكل
attribute_key = field_id - انقر Update
أوضاع الاشتراك في القائمة
لكل نموذج وضعه الخاص:
| الوضع | جهة الاتصال والحدث Form Submitted | الاشتراك في القائمة |
|---|---|---|
| This is a signup form - always subscribe | مع كل إرسال | مع كل إرسال |
| Only when a consent field is ticked | مع كل إرسال | فقط عندما يكون حقل الموافقة في النموذج (حقل acceptance في Contact Form 7 أو حقل Acceptance في Elementor) محدَّدًا |
توضح الخاصية consentGiven في الحدث ما حدث. المربع غير المحدَّد لا يلغي اشتراك أي شخص أبدًا.
التأكيد المزدوج (Double opt-in)
عندما تتطلب قائمة النموذج تأكيدًا مزدوجًا، لا تُشترك جهة الاتصال فورًا: يرسل Joryio بريد التأكيد (البريد نفسه المستخدم في نماذج صفحات الهبوط - اختر قالبه من Settings → Subscriptions → Double opt-in) ويشركها عندما تنقر الرابط. حتى ذلك الحين يذكر الحدث القائمة في listsPending. في قوائم الاختيار تُعلَّم هذه القوائم بـ (double opt-in).
ما يسجّله Joryio
- جهة الاتصال: نموذج الزائر يملأ البريد الإلكتروني والهاتف فقط عندما لا يكونان لدى جهة الاتصال، ولا يغيّر أبدًا بريد أو هاتف جهة اتصال موجودة. يمكن للعميل المسجَّل دخوله تحديث هاتفه (الإضافة 1.6.34): عندما يرسل عميل مسجَّل دخوله إلى موقعك نموذجًا ويكون بريد النموذج تابعًا لجهة الاتصال الخاصة به، يحلّ الهاتف المكتوب في النموذج محل هاتف جهة الاتصال. تثبت الإضافة هوية المستخدم المسجَّل دخوله بإثبات موقَّع يُنشأ على خادمك، فقط لنموذج أُرسل على موقعك؛ ولا يتغير البريد الإلكتروني بهذه الطريقة أبدًا. تُكتب الأسماء والسمات المخصصة التي ربطتها إلى جهة الاتصال. جهة الاتصال التي أنشأها نموذج تظهر مع أُنشئت عبر: نموذج الموقع
- الحدث:
Form Submittedمعsource(cf7أوelementor) وformIdوformNameوpageUrlوconsentGivenوconsentText(صياغة مربع الموافقة المحدَّد، بدءًا من الإضافة 1.6.31) وlistsSubscribedوlistsPending، وemailوphoneالخاصين بالنموذج (بالتنسيق الذي تخزّنهما به جهة الاتصال، حتى لا يضيع هاتف مختلف كتبه زائر) وphoneUpdatedعندما يختلف هاتف النموذج عن هاتف جهة الاتصال -trueعندما تحمله جهة الاتصال الآن، وfalseعندما احتفظت جهة الاتصال بهاتفها. أعضاء الفريق غير المسموح لهم برؤية البيانات الشخصية لا يرون قيم البريد والهاتف، وتُمحى هذه القيم مع الشخص. استخدمه مشغّلًا لرحلة أو مشغّلًا لحملة أو شرطًا في شريحة. باقي القيم المُدخلة في النموذج لا تُحفظ في الحدث - سجل الموافقة - عندما يشترك النموذج بجهة الاتصال في قائمة، يحتفظ سجل الاشتراكات بإثبات الموافقة: الصياغة الدقيقة لمربع الموافقة الذي حدّده الشخص، والصفحة التي أُرسل منها النموذج (
pageUrl)، والوقت، وعنوان IP للزائر (يظهر فقط لأعضاء الفريق المسموح لهم برؤية البيانات الشخصية). راجع إثبات الموافقة
إثبات الموافقة
بدءًا من الإضافة 1.6.31، عندما يحدّد الشخص حقل الموافقة في النموذج، ترسل الإضافة أيضًا ما وافق عليه:
- الصياغة - النص الظاهر لحقل الموافقة: نص وسم acceptance في Contact Form 7 (
[acceptance your-consent] I agree to receive news by email [/acceptance])، أو Acceptance Text لحقل Acceptance في Elementor (وإلا فتسميته). تُزال الروابط والتنسيق؛ بحد أقصى 500 حرف. النص الذي تكتبه خارج وسم acceptance في قالب Contact Form 7 لا يُرسَل - ضع الصياغة داخل الوسم. في Elementor، الحقل هو المحدد في Consent field ID (أي معرّف مخصص) ويجب أن يكون حقل Acceptance - الصفحة والوقت وعنوان IP لإرسال الزائر
المربع غير المحدّد لا يرسل صياغته أبدًا، ونموذج الاشتراك (بلا مربع) لا يرسل أي صياغة. يُكتب الإثبات في سجل موافقة فقط عندما يشترك النموذج بجهة الاتصال في قائمة: مع No list لا يُشترك أحد، فتبقى الصياغة في حدث Form Submitted فقط (consentText؛ ولا يوضع عنوان IP في الحدث أبدًا). في قائمة بتأكيد مزدوج يُحفظ الإثبات مع التأكيد ويُسجَّل عندما يؤكد الشخص.
لا تبطئ الإرسالات الزائر أبدًا: توضع في قائمة انتظار وتُرسل في الخلفية عبر WP-Cron، وتُعاد إن تعذّر الوصول إلى Joryio (ثلاث محاولات بفاصل خمس دقائق). الإعادة لا تُحتسب مرتين أبدًا. يعمل WP-Cron مع زيارات الموقع، لذا في موقع قليل الزيارات جدًا، أو عند إيقاف WP-Cron، شغّله من cron على الخادم.
التعرّف على الزائر. البريد المكتوب في نموذج على الموقع يعرّف أيضًا متصفح الزائر عندما يكون التعرّف على الزوار من البريد الإلكتروني الذي يكتبونه مفعّلًا (الافتراضي). يذهب الإرسال نفسه دائمًا إلى جهة الاتصال صاحبة هذا البريد.
مواقع دون WooCommerce
تعمل الإضافة على أي موقع WordPress. دون WooCommerce تجدها ضمن Settings → Joryio وتربطها بالطريقة نفسها وبالمفتاح نفسه jry_wc_: تحصل على نماذج الموقع وسكربت التتبع مع التقاط البريد الإلكتروني ورسائل in-app وإشعارات Web Push. ميزات المتجر - تتبع السلة ومزامنة الطلبات والمنتجات والعملاء وروابط القسائم ومربع الموافقة في صفحة الدفع - تعمل عندما يكون WooCommerce مفعّلًا. إن أضفت WooCommerce لاحقًا، انقر Disconnect ثم Connect مرة أخرى، ليُنشئ Joryio مفتاح REST الخاص به ويزامن متجرك. الدليل الكامل لموقع بدون متجر: موقع WordPress (بدون متجر).
استرداد السلات المتروكة
تتبع الإضافة سلات التسوق لحظيًا:
- تُتبع عناصر وقيمة السلة أثناء تسوق العملاء.
- بعد 30 دقيقة من عدم النشاط، تُعلم السلة على أنها متروكة.
- يُنشأ عنوان URL للاسترداد لإعادة السلة.
- استخدم Canvas لإرسال رسائل Email استردادية تحتوي رابط الاستعادة.
عناوين URL لاسترداد السلات
عندما ينقر العميل رابط الاسترداد:
- تُستعاد جلسة السلة.
- تُضاف كل عناصر السلة من جديد.
- يُعاد توجيهه إلى إتمام الشراء.
تُذكر بالاسم المنتجات التي لم يعد ممكنًا إضافتها (نفدت أو حُذفت أو غير متاحة): "No longer available, so not added: ...". وعندما لا يمكن إضافة أي منها، يرى المتسوّق في صفحة السلة "The products in this cart are no longer available." بدلًا من صفحة إتمام شراء فارغة، ولا تُحتسب السلة مستردة (الإضافة v1.6.9 أو أحدث).
بدءًا من الإضافة v1.6.10 يعمل الرابط كما في إضافة Magento:
- لا يفرغ أبدًا سلة المتسوّق الحالية - تُضاف المنتجات المحفوظة إليها. عندما تحتوي السلة على منتجات بالفعل، أو يفتح متسوّق مسجّل الدخول سلة محفوظة لزائر، تسأل صفحة أولًا: "Add these products from your saved cart to your current cart?"
- سلة عميل مسجّل يفتحها عميل آخر مسجّل الدخول تُرفض: "This cart belongs to a different account. Sign out to open it as a guest." دون ذكر اسم أحد.
- عند فتحها دون تسجيل الدخول، تُستعاد منتجات العميل المسجّل مع "Sign in to use your saved details at checkout."
- فتح الرابط مرة أخرى - يذهب المتصفح نفسه إلى السلة التي استعادها (دون مضاعفة)، ويحصل متصفح أو جهاز آخر على سلة جديدة بالمنتجات المحفوظة (أدناه)، وبعد الطلب يعرض الرابط "You already completed this order."
- إذا حمّله موقع آخر (كصورة أو إطار أو fetch) فلا يغيّر الرابط شيئًا.
- الطلب، لا النقرة، هو ما يُحتسب استردادًا: يذكر الطلب السلة المحفوظة التي جاء منها، فتُحتسب السلة المتروكة مستردة بذلك الطلب حتى لو أتمّ المتسوّق الشراء ببريد آخر.
فتح الرابط: صفحة استعادة، وسلة واحدة لكل رابط
بدءاً من الإضافة 1.6.17، لا يغيّر فتح الرابط وحده أي شيء. فمعاينات الروابط في تطبيقات الدردشة وماسحات أمان البريد (Outlook Safe Links وGmail وغيرهما) تفتح الروابط قبل المتسوق، وكان كل فتح من هذا النوع يستعيد السلة مرة أخرى.
- فتح الرابط يعرض صفحة قصيرة، "Restoring your saved cart..."، لا تُخزَّن مؤقتاً ولا تُفهرس أبداً. يستعيد السكربت فيها السلة ثم ينتقل إلى صفحة الدفع؛ ومن دون سكربت ينقر المتسوق Restore my cart. المعاينة أو الماسح الذي لا يشغّل السكربت لا يستعيد شيئاً. وتبقى صفحة التأكيد ("Add these products from your saved cart to your current cart?") بانتظار نقرة المتسوق.
- سلة واحدة لكل رابط، في كل متصفح - تُحفظ السلة التي استعادها الرابط مع المتصفح الذي استُعيدت فيه (يحتفظ WooCommerce بالسلة في جلسة المتصفح). فتح الرابط نفسه مرة أخرى في ذلك المتصفح يعيد المنتجات المحفوظة إلى السلة نفسها بدلاً من نسخة جديدة، لمدة 7 أيام (WooCommerce → Joryio → Store → Recovery Link Reuses Its Cart For، من 1 إلى 30 يوماً). أما المتصفح أو الجهاز الآخر - أو الماسح الذي شغّل الصفحة فعلاً - فلا يحصل على تلك السلة أبداً: يحصل على سلة جديدة فيها منتجات السلة المحفوظة ورمز الخصم فقط، فلا يظهر أي شيء كتبه أحد عند الدفع في متصفح ما في متصفح آخر. بعد ذلك يتذكر الرابط سلة أحدث متصفح. تظل السلتان محسوبتين على أنهما السلة المحفوظة نفسها: الطلب من أي منهما استرداد واحد، ولا يُرسل إلا تذكير واحد بأن السلة "تُركت مرة أخرى" لكل سلة أصلية.
- تم الطلب بالفعل - "You already completed this order."، ولا يُستعاد شيء.
- 10 عمليات استعادة كحد أقصى لكل رابط في الساعة - بعدها، "Too many attempts with this cart link. Please try again later."
إسناد طلبات الاستعادة
بدءًا من الإضافة 1.6.11، يحتفظ رابط الاستعادة بمعاملات الإسناد التي يضيفها تتبع النقرات في Joryio (jr_cid وjr_jid وutm_*) عندما ينقل المشتري إلى السلة، فيُسند الطلب إلى الرسالة التي أرسلت الرابط. تُنقل هذه المعاملات فقط، ويُتحقق من صيغة كل منها - ولا يُنقل رمز الرابط أو أي شيء آخر أبدًا. وعندما يفتح المشتري الرابط ويُتم الشراء ببريد إلكتروني مختلف، يُسند Joryio الطلب إلى نقرة جهة الاتصال التي أُرسلت إليها الرسالة. راجع السلال.
سلة مستعادة تُركت مرة أخرى
بدءاً من الإضافة 1.6.12، النسخة المستعادة التي يتركها المتسوق مرة أخرى يُبلَّغ عنها مرة واحدة أخرى بعد وقت الترك المعتاد، مع reabandonedAfterRecovery: true وoriginalSessionId في حدث Cart Abandoned؛ وأي نسخة خاملة أخرى من السلة الأصلية نفسها خلال 30 يوماً لا يُبلَّغ عنها. السلة التي كانت فيها منتجات واستقبلت المنتجات المحفوظة سلة عادية. الطلب من أي نسخة يُحتسب استعادة واحدة للسلة الأصلية. راجع السلال.
النسخة المستعادة لزائر ليس لها بريد إلكتروني (لا ينسخه الرابط أبداً)؛ بدءاً من 1.6.17 يُبلَّغ عنها مع ذلك، دون بريد، ويرسل Joryio التذكير الواحد إلى جهة اتصال السلة الأصلية - راجع السلال.
بدءًا من الإصدار 1.6.23، يذكر كل حدث سلة لنسخة مستعادة السلة التي استُعيدت منها (restoredFromSessionId)، فتظهر نسخة الضيف في E-Commerce → السلال كـنسخة مستعادة من سلة جهة الاتصال الأصلية بدلًا من سلة بدون جهة اتصال، ولا تُحتسب سلة متروكة إضافية - راجع السلال.
كانت الإضافة 1.6.11 وما قبلها تبلّغ عن كل سلة مستعادة تُركت مرة أخرى كترك عادي، دون حد. يضيف التحديث بنفسه ثلاثة أعمدة إلى جدول السلال في الإضافة؛ لا حاجة لإعادة التفعيل أو التنظيف.
مدة الترك والمنطقة الزمنية وTrack Guest Carts
يوجد Cart Abandonment Time وTrack Guest Carts ضمن WooCommerce → Joryio → Store.
بدءًا من الإضافة 1.6.24:
- يستخدم فحص السلال المتروكة المنطقة الزمنية للموقع نفسه. كانت الإصدارات السابقة تقارن آخر تغيير في السلة، المحفوظ بالمنطقة الزمنية للموقع، بوقت بتوقيت UTC: المتجر الواقع شرق UTC (مثلًا في إسرائيل أو أوروبا) كان يُبلغ عن سلاله متأخرًا بساعات، فيحددها Joryio بنفسه كمتروكة أولًا، مع صفحة الدفع العادية بدلًا من رابط الاسترداد؛ والمتجر الواقع غرب UTC قد يُبلغ عن سلة بينما المتسوق ما زال فيها.
- تُرسل السلة المتروكة في نفس تشغيل WP-Cron الذي يجدها. يشغّل WordPress الأداة WP-Cron فقط عندما يزور أحدٌ الموقع، لذا قد يتأخر الفحص نفسه في متجر هادئ؛ عندها يحدد Joryio السلة بنفسه، مع رابط الاسترداد، بعد مدة الترك لديك مضافًا إليها 20 دقيقة - راجع السلال. لتوقيت دقيق، شغّل WP-Cron من مهمة cron على الخادم.
- Track Guest Carts متوقف: لا تُرسل سلال الزوار إلى Joryio ولا تُحدد كمتروكة أبدًا، لا من الإضافة ولا من Joryio. ما زالت مشاهدات الصفحات ومشاهدات المنتجات و
Product AddedوCheckout Startedتُسجَّل للزوار.
بدءًا من الإضافة 1.6.28:
- يُرسل تغيير السلة إلى Joryio من زيارة المتسوق نفسها، في نهاية الطلب (بعد إرسال الصفحة على خوادم PHP-FPM وLiteSpeed)، ولا ينتظر في قائمة لتشغيل لاحق لـWP-Cron. المنتج الذي يُضاف إلى سلة حددها Joryio كمتروكة يصل إلى Joryio فورًا: لم تعد السلة متروكة، وتعرض محتواها الجديد، ويُبلَّغ عنها مجددًا عندما تبقى دون تغيير طوال مدة الترك لديك.
- يعمل فحص السلال المتروكة أيضًا في نهاية الزيارة إذا لم يعمل منذ دقيقة (خوادم PHP-FPM وLiteSpeed، بعد إرسال الصفحة)، لذا يُبلَّغ عن السلال تقريبًا عند انقضاء مدة الترك حتى عندما يتأخر WP-Cron.
- تشغيل الفحص وحده - التشغيل في نهاية الزيارة، أو Run now في WP Crontrol الذي يشغّل هذا الحدث وحده - يرسل أولًا أحداث الإضافة التي ما زالت تنتظر الإرسال (التشغيل العادي لـWP-Cron يرسلها بنفسه)، فيكون لدى Joryio آخر تغيير في السلة قبل تركها.
- لتشغيل WP-Cron يدويًا، استخدم
wp cron event run --due-now(WP-CLI)، أو اطلبhttps://<your store>/wp-cron.phpدون قيمةdoing_wp_cron. الطلب الذي يحمل قيمةdoing_wp_cron(مثل?doing_wp_cron=$(date +%s)) لا يشغّل شيئًا إلا إذا كانت القيمة مطابقة تمامًا للقفل الحالي لـWordPress نفسه، ويجيب مع ذلك بـ200. كما أن الطلب العادي لا يشغّل شيئًا إذا بدأ WP-Cron خلال آخر 60 ثانية. - تُكتب تقارير الفحص (معرّفات صفوف السلال فقط) وأي إرسال فشل في WooCommerce → Status → Logs، المصدر
joryio.
دعم متاجر متعددة
عند ربط عدة متاجر WooCommerce:
- يحصل كل متجر على كيان تطبيق خاص به ومفتاح SDK فريد.
- تُعلم كل الأحداث بـ
$app_idللمتجر. - صفِّ الأحداث حسب
$platform = 'woocommerce'أو$app_idمحدد. - يمكن ربط المستخدمين بين المتاجر عبر Email.
المطابقة المجدولة
قد تضيع التحديثات المباشرة (الإضافة والـ webhooks) - مثلًا عندما يكون المتجر غير متاح، أو عندما يفشل التسليم مرات كثيرة. كل 6 ساعات يفحص Joryio المتجر بحثًا عمّا تغيّر منذ الفحص السابق، ويضيف ما فاتته التحديثات المباشرة: الطلبات (مع الاستردادات والإلغاءات)، والمنتجات، والعملاء المسجلين حديثًا. لا تُفحص التعديلات على ملف عميل موجود (لا تستطيع واجهة WooCommerce البرمجية سرد العملاء حسب تاريخ التغيير)، وتأتي سلال التسوق من الإضافة فقط (لا توجد في واجهة WooCommerce البرمجية قائمة بالسلال). إصدار WooCommerce الذي يتجاهل عامل التصفية "modified after" لا يُفحص للطلبات والمنتجات.
لا يُحتسب أي شيء مرتين: العنصر الموجود لدى Joryio بالإصدار نفسه أو بإصدار أحدث يبقى كما هو، والنسخة الأقدم لا تحل أبدًا محل نسخة أحدث.
- الطلب المفقود الذي تم خلال آخر 24 ساعة يُسجَّل كما لو وصل مباشرة، فتبدأ مسارات ما بعد الشراء كالمعتاد. أما الطلب المفقود الأقدم، والاسترداد أو الإلغاء لطلب كان Joryio يعرفه، فيُسجَّلان دون بدء مسارات؛ ويُسجَّل كل من
Order RefundedوOrder Cancelledمرة واحدة فقط. - يُفحص كل متجر في وقته الخاص، فلا تُقرأ المتاجر كلها دفعة واحدة، ويقرأ الفحص الواحد عددًا محدودًا من التغييرات؛ والمتجر الذي لديه تغييرات أكثر يُستكمل خلال نصف ساعة.
- تُتخطى المتاجر غير المتصلة أو التي بها خطأ أو التي ما زالت قيد المزامنة حتى تتصل من جديد.
تظهر النتيجة في الإعدادات → التكاملات → WooCommerce: آخر مطابقة: 22/10/2026 12:00 - العناصر التي تمت إضافتها: 3. إذا استمرت الفحوص في العثور على تغييرات لم تصل مباشرة، يُطلق Joryio تنبيه Live updates from WooCommerce may be failing (الجرس، والسجلات والمراقبة، وبريد إلى مسؤولي مساحة العمل). تُضاف البيانات المفقودة في جميع الأحوال، لكن تحقق من اتصال المتجر: المسارات التي تتفاعل مع هذه التغييرات تبدأ متأخرة.
تعرض الصفحة نفسها آخر حدث مستلم - متى وصل آخر تحديث مباشر من المتجر إلى Joryio (بتأخير دقيقة واحدة على الأكثر) - وآخر مزامنة، وهي الأحدث بين آخر مزامنة كاملة وآخر مطابقة. في المتجر الذي يرسل تحديثات مباشرة يتقدم آخر حدث مستلم حتى عندما لا تعمل أي مزامنة.
الاستردادات والإلغاءات
يصبح كل استرداد في WooCommerce حدث Order Refunded واحدًا (بالمبلغ المسترد والسبب)، وكل طلب ملغى حدث Order Cancelled واحدًا، لكي تتمكن الرحلة من التفاعل معهما. ويبقى الاسترداد الذي تبلغ عنه الإضافة وwebhook معًا حدثًا واحدًا. راجع أحداث الاسترداد والإلغاء.
كيف تحدّث بيانات المتجر جهة الاتصال
تحدّث الطلبات وعمليات الدفع وتحديثات العملاء من متجرك جهة الاتصال المطابقة في Joryio:
- الهاتف - الطلبات: الطلب لا يستبدل أبدًا الهاتف الحالي لجهة الاتصال، سواء كان المتسوق مسجّل الدخول أم لا - إذ يمكن كتابة بريد الفوترة بحرية عند الدفع. بل يملأ الهاتف فقط عندما لا يكون لجهة الاتصال هاتف.
- الهاتف - حسابات العملاء: التغييرات على حساب العميل في المتجر (تحديثات العملاء واستيراد العملاء) تحدّث هاتف جهة الاتصال.
- الأسماء تتحدّث من الطلبات ومن تحديثات العملاء.
- رقم العميل في المتجر: يأتي رقم عميل WooCommerce لجهة الاتصال من حساب العميل (تحديثات العملاء واستيراد العملاء وأحداث العميل من الإضافة)، وليس أبدًا من طلب - إذ يمكن للمتسوق المسجّل الدخول كتابة بريد شخص آخر. وعندما يحمل الحساب بريدًا إلكترونيًا مختلفًا، ينتقل الرقم إلى جهة الاتصال صاحبة ذلك البريد.
- يحتفظ الطلب بالهاتف المكتوب عند الدفع في عنوان الفوترة والشحن الخاص به، مهما حدث لجهة الاتصال.
- موافقة SMS المقدَّمة عند الدفع برقم مختلف عن رقم جهة الاتصال لا تؤدي إلى اشتراك رقم جهة الاتصال.
- طرق أخرى لتغيير هاتف جهة الاتصال: حساب العميل في المتجر، أو الـ SDK أو الـ API من موقعك أو تطبيقك (مثلًا بعد تسجيل دخول الشخص)، أو الاستيراد، أو تعديل جهة الاتصال في Joryio.
Webhooks
ترسل الإضافة الأحداث مباشرة إلى Joryio (أسرع من Webhooks). إضافة إلى ذلك، تُسجل Webhooks REST API كنسخة احتياطية:
- إنشاء الطلب وتحديثه وحذفه
- إنشاء المنتج وتحديثه وحذفه
- إنشاء العميل وتحديثه
مزامنة البيانات
المزامنة اليدوية
شغّل مزامنة يدوية من الإعدادات → التكاملات → WooCommerce → علامة حالة المزامنة:
- مزامنة الكل: مزامنة كاملة للمنتجات والطلبات والعملاء
- مزامنة المنتجات: مزامنة المنتجات فقط
- مزامنة الطلبات: مزامنة الطلبات فقط
- مزامنة العملاء: مزامنة العملاء فقط
المزامنة التلقائية
ترسل الإضافة أحداثًا لحظية لـ:
- الطلبات الجديدة
- تغييرات حالة الطلب
- تحديثات المنتجات
- تحديثات العملاء
- تغييرات السلة
- السلات المستردة
حذف عميل في متجرك لا يحذف جهة الاتصال في Joryio. لمحو بيانات شخص ما، استخدم حذف البيانات في جهة الاتصال.
بيانات المنتج
يُحفظ كل منتج في كتالوج Joryio مع:
- الاسم والسعر وسعر التخفيض والعملة وSKU والصور ورابط المنتج والفئات والوسوم
- حالة المخزون والكمية، للمنتج ولكل متغير
- المتغيرات، لكل منها سعرها ومخزونها وSKU وخياراتها (مثل Color: Blue)
- العلامة التجارية - من WooCommerce Brands (الإصدار 9.6 من WooCommerce أو أحدث)، أو من Perfect Brands for WooCommerce أو YITH WooCommerce Brands
- الباركود - حقل GTIN أو UPC أو EAN أو ISBN (الإصدار 9.2 من WooCommerce أو أحدث)، للمنتج ولكل متغير
- السمات - كل سمة مع قيمها (مثل Material: Linen)
- الوصف - كنص عادي، بدون HTML أو رموز shortcodes الخاصة بمنشئي الصفحات، حتى 5,000 حرف
قبل الإصدار 9.2 من WooCommerce لا يوجد حقل للباركود، لذا تتزامن المنتجات بدونه؛ وكل ما عدا ذلك يتزامن في أي إصدار مدعوم.
تصل تغييرات المنتجات إلى Joryio بطريقتين: من الإضافة ومن webhooks الخاصة بـ WooCommerce. تكفي إحداهما، لذا يبقى الكتالوج - وتنبيهات العودة إلى المخزون وانخفاض السعر - محدّثًا حتى لو عطّل WooCommerce الـ webhooks بعد إخفاقات متكررة في التسليم. عندما تسلّم الطريقتان التغيير نفسه، يُحفظ مرة واحدة وتُرسل التنبيهات مرة واحدة، والتسليم الذي يصل متأخرًا لا يستبدل أبدًا بيانات منتج أحدث.
قطع الاتصال وإعادة الاتصال
- Test connection في صفحة إعدادات الإضافة (يظهر أثناء الاتصال) يتحقق من أن Joryio تقبل المفتاح وأن المتجر متصل لديها، ويوضح السبب إن لم يكن كذلك.
- قطع الاتصال في صفحة إعدادات الإضافة ينهي الاتصال. تحذف الإضافة webhooks الخاصة بـ Joryio في WooCommerce ومفتاح REST المسمى Joryio Integration، ثم تُبلغ Joryio، التي تضع المتجر في حالة غير متصل وتوقف المزامنة. يبقى مفتاح API صالحًا - انقر Connect مجددًا بالمفتاح نفسه. إذا تعذّر الوصول إلى Joryio في تلك اللحظة، يُقطع اتصال الموقع رغم ذلك وتوضح الصفحة أن Joryio قد تظل تعرض المتجر متصلًا: اقطع الاتصال في Joryio أيضًا.
- قطع الاتصال في Joryio (التكاملات → WooCommerce & WordPress) يُبطل مفتاح API فورًا؛ تؤكد الصفحة ذلك وتعرض المتجر غير متصل مباشرة. الاتصال بهذا المفتاح يعرض عندها «This key was revoked when the store was disconnected in Joryio»، وتشرح صفحة WooCommerce في Joryio سبب عدم وجود مفتاح. أنشئ مفتاحًا جديدًا والصقه في الإضافة للاتصال مجددًا.
- بعد إعادة الاتصال، يعرض تاريخ الاتصال وقت الاتصال الجديد وتبدأ مزامنة كاملة: يعرض آخر مزامنة جارٍ المزامنة الآن... حتى تنتهي. تُحفظ إعدادات الموافقة في صفحة المتجر في Joryio بعد قطع الاتصال وإعادته.
تبقى إعدادات الإضافة بعد Save Changes وبعد تحديث الإضافة. قبل الإصدار 1.6.19 كان Save Changes يمحو مفتاح API أيضًا: إذا كانت صفحة الإعدادات تقول إنه لا يوجد مفتاح API محفوظ، انقر Disconnect ثم اتصل مجددًا بمفتاحك. بدءًا من الإضافة 1.6.21 تعرض كل صفحة إدارة تنبيهًا ما دام لا يوجد مفتاح API محفوظ.
ذاكرة التخزين المؤقت للصفحات
سكربت التتبّع متطابق في كل صفحة ولا يحمل أي شيء عن الزائر - لا بريد إلكتروني ولا معرّف جلسة أو مستخدم - لذا يمكن لذاكرة التخزين المؤقت للصفحات حفظه. يسأل السكربت نفسه عمّن سجّل الدخول، عبر طلب لا يُخزَّن مؤقتًا أبدًا. الصفحة المخزّنة قبل الاتصال لا تحتوي على سكربت Joryio: تُفرغ الإضافة ذاكرة إضافات التخزين المؤقت الشائعة (Breeze وWP Rocket وLiteSpeed Cache وW3 Total Cache وWP Super Cache وWP Fastest Cache وSiteGround Optimizer) عند الاتصال وقطع الاتصال وتغيير إعدادات التتبّع وتحديث الإضافة. مع أي ذاكرة أخرى - ذاكرة خادم الاستضافة أو Varnish أو شبكة CDN - أفرغها بنفسك بعد الاتصال.
استكشاف الأخطاء وإصلاحها
ظهور "Cannot redeclare joryio()" عند التفعيل
لا تزال نسخة أقدم من الإضافة مثبتة (غالبًا في مجلد باسم woocommerce-plugin). في الإضافات، عطّل كل إدخال لـ Joryio واحذفه، ثم ارفع الإضافة من لوحة تحكم Joryio مجددًا. بدءًا من الإصدار 1.2.1 تعرض النسخة الثانية تنبيهًا بدل إيقاف WordPress.
فشل الاتصال أو ظهور "Malformed identifier"
تحقق من أن Server URL هو https://api-eu1.joryio.com وأن مفتاح API يبدأ بـ jry_wc_. إن استمر الفشل، تواصل مع دعم Joryio مع ذكر وقت النقر على Connect.
يفيد الاتصال بأن ترويسة Authorization تُزال
يقرأ Joryio متجرك بمفتاح REST API الذي تنشئه الإضافة، ويُرسل في ترويسة Authorization. بعض الخوادم - غالبًا Apache الذي يشغّل PHP كـ CGI أو FastCGI - أو إضافة أمان تزيل هذه الترويسة قبل أن يراها WordPress، فيجيب WooCommerce كأن مفتاحًا لم يُرسل. أضف ما يلي إلى .htaccess في المجلد الجذر لـ WordPress، فوق كتلة WordPress:
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
ثم انقر Connect مجددًا. ابتداءً من الإصدار 1.6.5 للإضافة، يحذف الاتصال المرفوض مفتاح REST API الذي أنشأه، فلا يبقى مفتاح غير مستخدم في WooCommerce → Settings → Advanced → REST API، وتعرض الإضافة السبب الذي يقدمه Joryio.
الإضافة لا تتصل
- تحقق من صحة مفتاح API (يبدأ بـ
jry_wc_). - تحقق من أن WordPress يملك وصول HTTPS صادرًا.
- تأكد من إمكانية الوصول إلى نقطة نهاية API.
أخطاء WooCommerce API
- تحقق من أن مفتاح Joryio Integration لا يزال موجودًا ضمن WooCommerce ← Settings ← Advanced ← REST API؛ إن حُذف، انقر Connect مرة أخرى لإنشاء مفتاح جديد.
- تحقق من أن مستخدم API يملك أذونات Read/Write.
- تأكد من أن موقعك يستخدم SSL (HTTPS).
تتبع السلة لا يعمل
- تحقق من تفعيل الإضافة.
- تحقق من تحميل نص التتبع في أدوات مطور المتصفح.
- امسح أي إضافات تخزين مؤقت.
المنتجات/الطلبات لا تتزامن
- تحقق من تفعيل المزامنة في علامة الإعدادات.
- جرّب مزامنة يدوية بزر «مزامنة الكل».
- تحقق من تفعيل WooCommerce REST API.
- يظهر الـ webhook الذي عطّله WooCommerce بعد إخفاقات التسليم بحالة Disabled ضمن WooCommerce > Settings > Advanced > Webhooks. تستمر المنتجات في الوصول عبر الإضافة، كما ترسل الإضافة الطلبات والعملاء أيضًا. أعده إلى Active لتعمل الطريقتان.
إضافات التخزين المؤقت والتحسين
- لا يؤثر التخزين المؤقت للصفحات في التتبع: لا يُحفظ أي شيء عن الزائر في الصفحة المخزنة. بعد الإضافة تضبط الإضافة ملف تعريف ارتباط صغيرًا باسم
joryio_pendingويجمع النص الإضافة عبرadmin-ajax.php، لذلك لا تخزّنadmin-ajax.phpمؤقتًا (تتركه إضافات التخزين المؤقت افتراضيًا) ولا تحذف ملف تعريف الارتباط هذا - تحتفظ الصفحة المخزنة مؤقتًا بـ Server URL ومفتاح SDK اللذين خُزّنت بهما. بعد تغيير Server URL أو الاتصال من جديد، امسح ذاكرة الصفحات المؤقتة حتى ترسل متصفحات الزوار إلى العنوان الجديد. يمكن لإضافة Content Security Policy أن تضيف الـ nonce الخاص بها إلى نص التتبع (الإضافة 1.6.7 أو أحدث، WordPress 5.7 أو أحدث)
- يجب ألا تُخزَّن صفحة إتمام الشراء مؤقتًا (يستثنيها WooCommerce وإضافات التخزين المؤقت افتراضيًا)، وإلا فلن يُرسل Checkout Started
- خيار "Delay JavaScript" أو "تحميل JavaScript عند التفاعل" يؤخر نص التتبع حتى يمرر الزائر أو ينقر، فلا يُحسب الزائر الذي يغادر فورًا. استثنِ نص Joryio (يحتوي على
joryio) من هذا الخيار