- Status
- Warten auf Autor
- Zugehöriges Plugin/Theme
- Event Tickets Plus
Übersicht über das Problem
Wenn Sie das Plugin Event Tickets Plus verwenden, um ein neues Ereignis zu erstellen und diesem Tickets hinzuzufügen, wird der Ticket-Bereich auf der übersetzten Ereignisseite nicht angezeigt.
Problemumgehung
Bitte erstellen Sie ein vollständiges Backup Ihrer Website, bevor Sie fortfahren:
- Fügen Sie das folgende Snippet unter WPML → Einstellungen → Benutzerdefinierte XML-Konfiguration hinzu:
<wpml-config> <custom-fields> <custom-field action="copy">_ticket_end_date</custom-field> <custom-field action="copy">_ticket_start_date</custom-field> <custom-field action="copy">_tribe_ticket_capacity</custom-field> <custom-field action="copy">_tribe_ticket_show_description</custom-field> <custom-field action="copy">_tribe_ticket_version</custom-field> <custom-field action="copy">_tribe_tickets_ar_iac</custom-field> <custom-field action="copy">_tribe_tickets_meta</custom-field> <custom-field action="copy-once">_tribe_wooticket_for_event</custom-field> </custom-fields> </wpml-config> - Fügen Sie den folgenden Code zur Datei functions.php hinzu:
//WPML Workaround add_action( 'save_post', 'wpmldp_update_tribe_wooticket_for_event_meta', 999,3 ); function wpmldp_update_tribe_wooticket_for_event_meta( $post_id, $post, $update ) { // Only set for post_type = product if ( 'product' !== $post->post_type ) { return; } //Check if WPML and THe Events Calendar are enabled if (class_exists('SitePress')) { //Get the current ID on "_tribe_wooticket_for_event" meta $current_wooticket_id = get_post_meta($post_id, '_tribe_wooticket_for_event'); if ( $current_wooticket_id ) { //Get Post Language $wpml_post_language_details = apply_filters( 'wpml_post_language_details', NULL, $post_id ) ; $wpml_current_language = $wpml_post_language_details['language_code']; //Check if there is a translation for the $current_wooticket_id. If not, returns the original ID $translated_wooticket_id = apply_filters( 'wpml_object_id', $current_wooticket_id[0], 'page', FALSE, $wpml_current_language); //Update post meta with the translated ID if ($translated_wooticket_id) { update_post_meta( $post_id, '_tribe_wooticket_for_event', $translated_wooticket_id ); } } } return; } - Erstellen Sie das Ereignis und fügen Sie ihm Tickets hinzu.
- Übersetzen Sie das Ereignis.
- Gehen Sie zu Produkte → Alle Produkte und bearbeiten Sie das Ticket.
- Nehmen Sie eine kleine Änderung am Ticket vor und speichern Sie.
- Übersetzen Sie das Ticket. Denken Sie daran, dass Sie das Ereignis, falls es bereits existiert, vor der Übersetzung des Tickets übersetzen müssen. Wenn beide bereits übersetzt sind, nehmen Sie eine kleine Änderung am Original-Ticket vor und aktualisieren Sie dann die Übersetzung.
Wenn Sie das Plugin The Events Calendar verwenden, müssen Sie diese Zeile ändern:
$translated_wooticket_id = apply_filters( 'wpml_object_id', $current_wooticket_id[0], 'page', FALSE, $wpml_current_language);in:
$translated_wooticket_id = apply_filters( 'wpml_object_id', $current_wooticket_id[0], 'tribe_events', FALSE, $wpml_current_language);
Nächste Schritte
Event Tickets Plus und WPML sind noch nicht vollständig kompatibel, aber wir möchten mit dem Team von The Events Calendar zusammenarbeiten, um dies abzuschließen. Wenn Ihnen die Kompatibilität dieses Plugins mit WPML wichtig ist, teilen Sie dies dem Team von The Events Calendar bitte über deren öffentliches Support-Forum oder die privaten Support-Kanäle mit, damit wir versuchen können, dies gemeinsam voranzutreiben.