- Statut
- Résolu
- Signalé pour
- WPML Multilingual CMS 4.6.4
- Résolu dans
- WPML 4.7
- Extension/thème associé
- WooCommerce Memberships
- Étiquettes de sujet
- Compatibility
Aperçu de l’anomalie
Si vous utilisez WooCommerce Membership, vous remarquerez que si une page est ajoutée dans les paramètres Restrict Content d’un plan d’adhésion puis supprimée, WPML applique de manière incorrecte la restriction à toutes les pages du site, et non seulement à celles spécifiées dans le plan d’adhésion.
Solution de contournement
Assurez-vous de disposer d’une sauvegarde complète de votre site avant de continuer.
- Ouvrez le fichier …/wp-content/plugins/woocommerce-multilingual/compatibility/WcMemberships/class-wcml-wc-memberships.php.
- Recherchez la ligne 134.
- Remplacez ce code :
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; } - Par :
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; }