WPML
Estado
Resuelto
Notificado para
WPML Multilingual CMS 4.6.4
Resuelto en
WPML 4.7
Plugin/tema relacionado
WooCommerce Memberships
Etiquetas de temática
Compatibility

Resumen del problema

Si está utilizando WooCommerce Membership, notará que si se añade una página en la configuración de Restringir contenido dentro de un plan de membresía y posteriormente se elimina, WPML aplica incorrectamente la restricción a todas las páginas del sitio, no solo a las especificadas en el plan de membresía.

Solución alternativa

Asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.


  • Abra el archivo …/wp-content/plugins/woocommerce-multilingual/compatibility/WcMemberships/class-wcml-wc-memberships.php.

  • Busque la línea 134.

  • Reemplace este código:
    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;
    }


  • Por:
    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;
    }

Todos los problemas conocidos →