- סטטוס
- פתוח
- דווח עבור
- 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, ] ); } - לבסוף, שמור מחדש את המוצר המקורי.