WPML
סטטוס
פתוח
דווח עבור
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,
    							]
    						);
    					}


  • לבסוף, שמור מחדש את המוצר המקורי.

כל התקלות הידועות →