WPML
סטטוס
נפתר
דווח עבור
WPML Multilingual CMS 4.6.4
נפתר בגרסה
WPML 4.7
תוסף/ערכת עיצוב קשורים
WooCommerce Memberships
תגיות נושא
Compatibility

סקירה כללית של התקלה

אם אתה משתמש ב־WooCommerce Membership, תבחין שאם עמוד מתווסף תחת הגדרות Restrict Content בתוך תוכנית מנויים ולאחר מכן נמחק, WPML מחיל באופן שגוי את ההגבלה על כל העמודים באתר, ולא רק על אלו שצוינו בתוכנית המנויים.

פתרון עוקף

אנא ודא שיש לך גיבוי מלא של האתר לפני שתמשיך.


  • פתח את הקובץ …/wp-content/plugins/woocommerce-multilingual/compatibility/WcMemberships/class-wcml-wc-memberships.php.

  • חפש את שורה 134.

  • החלף קוד זה:
    public function add_translated_object_ids( $object_ids ) {
    	$result = [];
    	foreach ( $object_ids as $object_id ) {
    		$type         = apply_filters( 'wpml_element_type', get_post_type( $object_id ) );
    		$trid         = apply_filters( 'wpml_element_trid', null, $object_id, $type );
    		$translations = array_values( wp_list_pluck(
    			apply_filters( 'wpml_get_element_translations', [], $trid, $type ),
    			'element_id'
    		) );
    
    		$result = array_merge( $result, $translations );
    	}
    
    	return $result;
    }


  • ב:
    public function add_translated_object_ids( $object_ids ) {
    	$result = [];
    	foreach ( $object_ids as $object_id ) {
    		$type         = apply_filters( 'wpml_element_type', get_post_type( $object_id ) );
    		$trid         = apply_filters( 'wpml_element_trid', null, $object_id, $type );
    		$translations = array_values( wp_list_pluck(
    			apply_filters( 'wpml_get_element_translations', [], $trid, $type ),
    			'element_id'
    		) );
    
    		$result = array_merge( $result, $translations );
    	}
    
    	// Workaround for compsupp-6900
    	if ( empty($result) ) {
    		return $object_ids;
    	}
    
    	return $result;
    }

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