Woo-poly-integration: لا يتضمن البريد الإلكتروني لطلب اللغة الإنجليزية معلومات الاختلاف

تم إنشاؤها على ٣١ مايو ٢٠١٧  ·  14تعليقات  ·  مصدر: hyyan/woo-poly-integration

أقوم بتشغيل WordPress 4.7.5 و WooCommerce 3.0.7 وإصدار فرع رئيسي من Hyyan WooCommerce Polylang (تم تنزيله في 15 مايو ، بعد تنفيذ تغييرات WC 3).

عندما يتم إرسال رسائل البريد الإلكتروني الخاصة بالطلب إلى العميل والمسؤول ، لا تكون معلومات التغيير موجودة.
المنتجات عبارة عن منتجات متغيرة مع متغيرات تم إنشاؤها لكل قيمة في السمة الفردية.
بالنسبة للمنتجات التي تحتوي على أكثر من سمة واحدة ، فإنها تحتوي على أشكال مختلفة تم إنشاؤها لسمة واحدة. في هذه الحالة ، لا تظهر معلومات السمة الأخرى في البريد الإلكتروني.

عندما أقوم بتعطيل Hyyan WooCommerce Polylang ، تظهر معلومات الاختلاف في رسائل البريد الإلكتروني.
مربع المنتج في البريد الإلكتروني: يونيكورن فانتاسي دوج باندانا
عند تعطيل المكون الإضافي: Unicorn Fantasy Dog Bandana - 12 بوصة

حاولت تجربة عامل التصفية "woocommerce_order_item_name" لمعرفة قيمة $ item_name لكنها كانت دائمًا فارغة!
لقد حاولت عزل المشكلة عن طريق تعطيل استدعاء add_filter لوظيفة "translateProductNameInOrdersDetails" في Hyyan \ WPI \ Order.php's __construct () ولكن نتج عنها اسم منتج NULL!

يسعدني تجربة أي أفكار وإضافة رسائل تصحيح الأخطاء.

ال 14 كومينتر

يرجى المحاولة مرة أخرى مع أحدث إصدار ، تم إصداره الآن باسم Hyyan WooCommerce Polylang Integration 1.0.
لم تتضمن المجموعة الأولى من تغييرات wooCommerce 3.0 مراجعة شاملة للاختلافات.

بعد قولي هذا ، أنا فقط أعيد اختباره وفي تثبيت الاختبار العادي الخاص بي:

  • يتضمن البريد الإلكتروني إلى صاحب المتجر تفاصيل الاختلاف
  • لا يتضمن البريد الإلكتروني إلى العميل تفاصيل الاختلاف

إذا قمت بعد ذلك بإيقاف تشغيل كل من woo-poly-Integration و polylang ، فسأحصل على نفس النتيجة ... لذلك هذا موجود في قوالب WooCommerce نفسها.
لذلك إذا كنت بحاجة إلى تعديل النموذج أو رفع المشكلة إلى WooCommerce.

يرجى التحقق والتأكيد مرة أخرى هنا.

لقد قمت بإجراء اختبار ولم تكن معلومات التباين في أي من البريد الإلكتروني.
هل هناك أي شيء يمكنني القيام به لمساعدتك في تصحيح المشكلة؟

حسنًا ، إذا كنت تؤكد أن معلومات التباين ليست في البريد الإلكتروني عند إيقاف تشغيل Polylang و woo-poly ، فهذه ليست مشكلة في هذا المكون الإضافي ...

لقد عطلت woo-poly والآن أرى معلومات التباين في البريد الإلكتروني المرسل إلى المسؤول.
على سبيل المثال ، "Navy Movie Stars Dog Bandana - 26 بوصة" (حيث "26 بوصة" هي معلومات الاختلاف).

لقد قمت بتمكين woo-poly مرة أخرى واختفت معلومات التباين مرة أخرى.

معلومة اضافية:

  • يتم عرض تفاصيل الاختلاف دائمًا في السداد.
  • تفاصيل الشكل ليست في صفحة استلام الطلب عندما يكون woo-poly نشطًا.
  • تفاصيل التباين ليست في البريد الإلكتروني للمسؤول عندما يكون woo-poly نشطًا.
  • تفاصيل التباين ليست في البريد الإلكتروني للعميل عندما يكون woo-poly نشطًا (يكون موجودًا عندما يكون woo-poly غير نشط ، مختلف عما لاحظته).

هل كان ذلك في اللغة الأساسية أم اللغة الثانية؟

لغة الأساس.
هل تريدني أن أجربها باللغة الثانية؟ (يحتوي الموقع على لغتين نشطتين فقط - الإنجليزية والألمانية).

حسنًا ، إليك المشكلة:

Order.php l. 118 ** وظيفة translateProductNameInOrdersDetails
يحاول أن يكون ذكيًا ويضيف ارتباطات على كل عنصر طلب للعودة إلى تفاصيل المنتج بالإضافة إلى [فشل] ترجمة اسم الشكل.

يمكنك معرفة ذلك عن طريق إضافة السطر الأول من هذه الوظيفة:
return $name;

ستحصل على اسم تنوع المنتج على رسائل البريد الإلكتروني وما إلى ذلك ، ولكنه سيكون دائمًا بلغة قاعدة المتجر.

للوهلة الأولى ، تبدو إضافة روابط المنتج ميزة رائعة ، وفي الواقع يبدو من المحبط للغاية أن رسائل البريد الإلكتروني لعملاء WooCommerce القياسية لا تتضمن أي روابط على الإطلاق (!!) ، ولكن ربما لا ينبغي أن تكون وظيفة هذا المكون الإضافي لتعديل قوالب البريد الإلكتروني بهذه الطريقة.
ومن المحتمل أن يكون هناك سبب لعدم قيام wooCommerce بهذا: قد يحتفظ العميل بالبريد الإلكتروني للأعمار كإيصال ، ولكن قد يتم تحرير المنتج لاحقًا حتى لا يتطابق مع الرابط. يبدو هذا سيئًا إذا نقر العميل على البريد الإلكتروني للطلب القديم لاحقًا.
لذلك قد أجعل هذا خيارًا ...

لدي أيضًا سبب للسلوك غير المتسق الظاهر:

  • تستخدم وظيفة wooCommerce القياسية product-> get_name () والتي يبدو أنها مشتقة من wp_posts.post_title
    عادةً لا ترى عنوان الاختلاف من هذا الحقل ، لذلك من الصعب تتبعه ، ولكن قد تعتمد عناوين الاختلافات الفعلية على إصدارات تكامل WooCommerce و WooCommerce Polylang التي تم تثبيتها في وقت إنشاء الاختلافات أو حفظها.

من الناحية الملاحظة ، لدي التنسيقات التالية في متجر تم بناؤه خلال العام الماضي:

  • [اسم المنتج] مترجم ولكن لا توجد معلومات مختلفة
  • الشكل # [variation_id] من [اسم المنتج]
  • [اسم المنتج] [اسم الاختلاف] اسم التباين غير المترجم
  • [اسم المنتج] [اسم الاختلاف] ترجمة اسم الاختلاف

لذلك قد يحتوي الحل الصحيح على العناصر التالية:

  • حدد اسم الشكل الصحيح وتأكد من ضبطه بشكل صحيح عند حفظ / تحديث المنتج
  • قم بإنشاء برنامج نصي لإعادة إنشاء أسماء ورموز تنوع المنتج الصحيحة لتشغيله مرة واحدة بالضبط عند تحديث المكون الإضافي
  • يمكن بعد ذلك إزالة الوظيفة translateProductNameInOrdersDetails ، لأن الاسم سيكون صحيحًا أصلاً ...

منطقيا ، يجب أن يكون حفظ الاسم بشكل صحيح أفضل من محاولة ربط الاسم وتغييره في كل مكان يمكن استخدامه فيه.

يحتوي wooCommerce 3.0 على بعض الرموز لهذا أيضًا:

فئة wc-product-variation-data-store-cpt-php ll.73-83

        /**
         * If a variation title is not in sync with the parent e.g. saved prior to 3.0, or if the parent title has changed, detect here and update.
         */
        if ( version_compare( get_post_meta( $product->get_id(), '_product_version', true ), '3.0', '<' ) && ( $parent_title = get_post_field( 'post_title', $product->get_parent_id() ) ) && 0 !== strpos( $post_object->post_title, $parent_title ) ) {
            global $wpdb;

            $new_title = $this->generate_product_title( $product );
            $product->set_name( $new_title );
            $wpdb->update( $wpdb->posts, array( 'post_title' => $new_title ), array( 'ID' => $product->get_id() ) );
            clean_post_cache( $product->get_id() );
        }

حسنًا ، هذا الأمر معقد ، كنت سأبلغ wooCommerce ، ولكن هناك تسجيل وصول ذي صلة منذ 5 أيام وتمت إضافته إلى 3.0.8: https://github.com/woocommerce/woocommerce/issues/15315
لذلك سيكون من المعقول مراجعة ذلك.

بشكل أساسي ، لا يزال wooCommerce 3.0.7 يواجه مشاكل مع وصف التباين في سلة التسوق وبالتالي في الطلبات.
إليك تسلسل باستخدام WooCommerce 3.0.7 العادي بعد إيقاف تشغيل تكامل Polylang و Polylang WooCommerce .

  1. قم بإنشاء سمة منتج ، مثل اللون مع المصطلحين أسود وأزرق
  2. قم بإنشاء منتج تباين جديد مع اختلافات للون الأسود والأزرق
  3. قم بتغيير المصطلح الأزرق إلى NewBlue
  4. عرض المنتج - يعرض الآن الشكل "NewBlue"
  5. أضف إلى السلة ، عرض السلة
  6. تعرض السلة الآن: اختلافات اختبار المزامنة - أزرق
    اللون: نيو بلو
  7. الآن قم بتحرير المنتج ، على سبيل المثال قم بتغيير العنوان….
    لن تتم إعادة تعيين عنوان التباين بالكامل مطلقًا وسيظل مع قيمة السمة القديمة ، نظرًا لأن رمز WooCommerce لا يستبدل سوى عنوان المنتج القديم ، ولا يقوم أبدًا بإعادة بناء العنوان بالكامل.
    مهما تم تغيير سمة المنتج ، فلن تتم إعادة تعيين العنوان أبدًا:
mysql> select ID, post_title from wp_posts where ID>456;
+-----+---------------------------------------------+
| ID  | post_title                                  |
+-----+---------------------------------------------+
| 457 | Test Sync variations 2                      |
| 458 | Test Sync variations 2 - Blue               |
| 459 | Test Sync variations 2 - Black              |

(تمت إعادة تسمية السمة Blue ولكن لم يتم تحديث وصف سلة التسوق / الطلب بشكل صحيح أبدًا)

كيف يقوم wooCommerce بعمل الارتباط:
عند الحفظ:
class-wc-product-variable.php حفظ () l.394 مكالمات
$ this-> data_store-> sync_variation_names ($ this، $ previous_name، $ new_name)؛
فئة wc-product-variable-data-store-cpt.php sync_variation_names () ll.304 ++
هل تستبدل سلسلة داخل الأسماء بدلاً من اسم جديد
لذلك هنا لا يتم اختيار سلسلة التنوعات المترجمة ، إنها مجرد استبدال جزء العنوان

في التعليق السابق ، يعد create_product_title () وظيفة محمية لفئة بيانات داخلية بحيث لا يمكن الوصول إليها بسهولة للتجاوز من خارج WooCommerce.

لذلك ، فيما يتعلق بكل هذا هو كيفية عمل WooCommerce-Polylang: على مستوى التباين ، تضيف WooCommerce-Polylang مرجعها الخاص لضمان استرداد تفاصيل التباين عادةً من نسخة اللغة الرئيسية للاختلاف - راجع المشكلة رقم 168

أعتقد تطبيق إصلاح مؤقت باستخدام عامل التصفية "woocommerce_product_variation_get_name".

هناك بديل آخر غريب مذكور ، لإيقاف تشغيل سمات المنتج في العنوان مما يعني أنه يجب بدلاً من ذلك طباعتها بعد العنوان.
add_filter( 'woocommerce_product_variation_title_include_attributes', '__return_false' );
لكن هذا لا يعمل بالنسبة لي.

حسنًا ، تم إصلاح هذا في WOOCOMMERCE !!!

تم اختباره باستخدام أحدث كود https://github.com/woocommerce/woocommerce "الإصدار 3.1.0-beta"
ومن المتوقع أن يصدر في 3.0.8.

ومع إيقاف تشغيل وظيفة woo-poly translateProductNameInOrdersDetails () ،
ثم سيتم تطبيق إصلاح woocommerce

أيضا إذا أراد
add_filter ('woocommerce_product_variation_title_include_attributes'، '__return_false') ؛
يعمل في WooCommerce المحدث

قد يكون WooCommerce 3.1 بدلاً من 3.0.8 ، بالنظر إلى مدونة woocommerce: https://woocommerce.wordpress.com/
أسبوعان من 31 مايو سيحددان تاريخ الإصدار ربما 14 يونيو.

ملاحظة ، يبدو أنه تم إسقاط woocommerce / woocommerce # 15315 من 3.0.8 في اللحظة الأخيرة ، ولكن لا يزال من المقرر 3.1 مع مراجعة أكثر شمولاً.
لذلك قد تظل تفاصيل الاختلاف في السلة / الطلبات غريبة حتى ذلك الحين.

قد تكون النتيجة النموذجية على سبيل المثال:

اسم المنتج الاسباني - _English Variation Term_
اسم السمة - _مصطلح الاختلاف الاسباني_

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات