- الحالة
- مفتوحة
- أُبلغ عنها لـ
- WPML Multilingual & Multicurrency for WooCommerce 5.5.3.1
- الإضافة/القالب ذو الصلة
- WooCommerce Product Bundles
- وسوم الموضوع
- WCML
نظرة عامة على المشكلة
عند ترجمة منتج مُجمَّع باستخدام WooCommerce Multilingual وWooCommerce Product Bundles، قد تجد أن المنتج المُترجم يفتقد جميع العناصر المُجمَّعة. تحدث هذه المشكلة عندما يكون هناك عدم اتساق في قاعدة البيانات مما يمنع المزامنة الصحيحة لبيانات المنتج المُجمَّع في الترجمة.
حل بديل مؤقت
يرجى التأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.
- افتح الملف …/woocommerce-multilingual/compatibility/WcProductBundles/class-wcml-product-bundles.php.
- مباشرة بعد هذا الكود:
if ( ! $translated_item_id ) { $menu_order = $this->wpdb->get_var( $this->wpdb->prepare( " SELECT menu_order FROM {$this->wpdb->prefix}woocommerce_bundled_items WHERE bundle_id=%d AND product_id=%d ", $bundle_id, $product_id ) ); $this->wpdb->insert( $this->wpdb->prefix . 'woocommerce_bundled_items', [ 'product_id' => $translated_product_id, 'bundle_id' => $translated_bundle_id, 'menu_order' => $menu_order, ] ); $translated_item_id = $this->wpdb->insert_id; $this->set_translated_item_id_relationship( $item_id, $translated_item_id, $lang ); } - أضف ما يلي:
$check = $this->wpdb->get_var( $this->wpdb->prepare( "SELECT bundled_item_id FROM {$this->wpdb->prefix}woocommerce_bundled_items WHERE bundled_item_id = %d AND bundle_id = %d", $translated_bundle_id, $translated_product_id ) ); if ( !$check ) { $menu_order = $this->wpdb->get_var( $this->wpdb->prepare( " SELECT menu_order FROM {$this->wpdb->prefix}woocommerce_bundled_items WHERE bundle_id=%d AND product_id=%d ", $bundle_id, $product_id ) ); $this->wpdb->insert( $this->wpdb->prefix . 'woocommerce_bundled_items', [ 'bundled_item_id' => $translated_item_id, 'product_id' => $translated_product_id, 'bundle_id' => $translated_bundle_id, 'menu_order' => $menu_order, ] ); } - أخيراً، أعد حفظ المنتج الأصلي.