Ankerlink an den Anfang der Seite
catalogs 2754663 1920
Generic filters
Filter by Kategorien

Der Beitrag, geschriebem am 20. April 2018, ist schon etwas älter und könnte womöglich nicht mehr aktuell sein

Auf der Suche nach Ideen wie man einzelne Strings oder Wörter in WooCommerce ersetzt, ist am gettext-Filter nicht vorbeizukommen. Das funktioniert soweit auch – für Texte in Templates. Ein Beispiel dafür sieht so aus:

/* *
 * Change translated strings
 */
function flxo_woo_gettext_replace( $translated_text, $text='', $domain = '' ) {
	$words = array('Shop' => 'Angebot', 'Warenkob' => 'Katalog');
	switch( $domain ) {
		case 'woocommerce' :	
			$translated_text =  str_replace( array_keys($words), $words, $translated_text );
		break;	
	}
	return $translated_text;
}	
add_filter( 'gettext', 'flxo_woo_gettext_replace', 30, 3 );

Beharrlich blieb es allerdings dabei, dass „zum Katalog hinzufügen“ eines neuen Elements stets mit {Produktname} wurde zum Warenkorb hinzugefügt quittiert wurde.

Auf der Suche nach den Hintergründen im Quellcode von WooCommerce stieß ich auf die Funktion

/**
 * Returns all queued notices, optionally filtered by a notice type.
 *
 * @since  2.1
 * @param  string $notice_type Optional. The singular name of the notice type - either error, success or notice.
 * @return array|mixed
 */
function wc_get_notices( $notice_type = '' ) {
	// ...
}

Es gibt drei Typen von Notices, und jeder Typ hat einen eigenen Filter.

'messages' => array( apply_filters( 'woocommerce_add_' . $notice_type, $message ) ),

So wurde ich den Warenkorb in den Messages los:

/* *
 * Change wocommerce messages strings
 */
function flxo_woo_messages_replace( $translated_text ) {
	$words = array('Shop' => 'Angebot', 'Warenkob' => 'Katalog');
	return  str_replace( array_keys($words), $words, $translated_text );
}
add_filter( 'woocommerce_add_success', 'flxo_woo_messages_replace', 30 );
add_filter( 'woocommerce_add_notice', 'flxo_woo_messages_replace', 30 );
add_filter( 'woocommerce_add_error', 'flxo_woo_messages_replace', 30 );

Bitte das Kommentarfeld nicht für Supportanfragen nutzen; hier kann kein Support angeboten werden. Die Angabe von Name oder E-Mail-Adresse ist optional, ein Spitzname wäre trotzdem nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Name und E-Mail-Adresse (beides optional, da alle Kommentare moderiert werden) werden dauerhaft gespeichert. Über dieses Formular kann jeder Zeit die Löschung persönlicher Daten oder Kommentare angefordert werden; die Anfrage wird nicht veröffentlicht und nach der Bearbeitung gelöscht. IP-Adressen, die mit Kommentaren gespeichert werden, werden nach zwei Monaten automatisch gelöscht.

Ihre Nachricht wird möglicherweise zur Spam-Prüfung an OpenAI (USA) weitergeleitet. Weitere Informationen finden Sie in unserer Datenschutzerklärung.