- Status
- Gelöst
- Gemeldet für
- WPML Multilingual CMS 4.6.4
- Gelöst in
- WPML 4.7
- Zugehöriges Plugin/Theme
- WooCommerce Memberships
- Themen-Tags
- Compatibility
Übersicht über das Problem
Wenn Sie WooCommerce Membership verwenden, werden Sie feststellen, dass WPML, wenn eine Seite unter den Einstellungen für Restrict Content innerhalb eines Mitgliedschaftsplans hinzugefügt und anschließend gelöscht wird, die Einschränkung fälschlicherweise auf alle Seiten der Website anwendet, nicht nur auf die im Mitgliedschaftsplan angegebenen.
Problemumgehung
Bitte erstellen Sie ein vollständiges Backup Ihrer Website, bevor Sie fortfahren.
- Öffnen Sie die Datei …/wp-content/plugins/woocommerce-multilingual/compatibility/WcMemberships/class-wcml-wc-memberships.php.
- Suchen Sie nach Zeile 134.
- Ersetzen Sie diesen 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; } - Durch:
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; }