Ich versuche herauszufinden, wo WooCommerce seine Nachrichten erstellt, wenn es einen Erfolg, einen Fehler oder eine Benachrichtigung in WooCommerce gibt. Ich möchte diese Nachrichten so bearbeiten, dass sie besser in das Szenario passen und auch den HTML-Code bearbeiten. Wo befinden sich diese Nachrichten und wie bearbeite ich sie?
Viele von ihnen befinden sich direkt in den Plugin-Dateien - leider. Einige Nachrichten sind an Filter-Hooks gebunden, mit denen Sie sie bearbeiten können, ohne Plug-In-Dateien zu verwenden. Dies ist jedoch nicht immer der Fall.
Die Nachricht, die Sie ändern möchten, war "Produktname wurde erfolgreich in Ihren Warenkorb gelegt". Dies ist in der Funktion wc_add_to_cart_message in der Datei wc-cart-functions.php festgelegt. Mit dieser Funktion können Sie sie mithilfe eines Filters ändern:
wc_add_notice( apply_filters( 'wc_add_to_cart_message', $message, $product_id ) );
Sie könnten also in Ihrer Datei "functions.php" Folgendes hinzufügen:
add_filter('wc_add_to_cart_message', 'handler_function_name', 10, 2);
function handler_function_name($message, $product_id) {
return "Thank you for adding product" . $product_id;
}
Öffnen Sie die Plugin-Dateien und suchen Sie nach wc_add_notice
:
Diese Funktion hat einen Filter:
apply_filters( 'woocommerce_add_' . $notice_type, $message );
Der $notice_type
ist das zweite Argument, das in all diesen Vorkommen übergeben wird.
So etwas sollte funktionieren:
add_filter( 'woocommerce_add_error', function( $message ) {
if( $message == 'Some message' )
$message = '';
return $message;
});
Die hier genannten Filter eignen sich gut zum Bearbeiten der Nachricht selbst. Wenn Sie jedoch das eigentliche HTML-Markup mit der Benachrichtigungsnachricht bearbeiten möchten, müssen Sie die Benachrichtigungsvorlagen unter templates > notices
verwenden.
Hier gibt es drei verschiedene Dateien für die verschiedenen Arten von Benachrichtigungen. In meinem Fall wollte ich eine Klasse zu dem Gutschein hinzufügen, der erfolgreich angemeldet wurde. Daher habe ich success.php
in meine Motivdatei kopiert. Mein Code sah dann wie folgt aus:
<?php foreach ( $messages as $message ) : ?>
<?php
$om_css_class = "";
if ( $message == "Coupon code applied successfully." ) {
$om_css_class = "coupon-notice-msg";
}
?>
<div class="woocommerce-message <?php echo $om_css_class; ?>"><?php echo wp_kses_post( $message ); ?></div>
<?php endforeach; ?>
Ich bin auf diese Antwort gestoßen und konnte eine Produktionsstätte umsetzen. Diese Antwort bezieht sich auf Hinweise zu Woocommerce-Fehlercodes. Sie müssen die Codes in den separaten Klassendateien finden (~ woocommerce/includes /). Für meinen Zweck war der Code in ~ woocommerce/includes/class-wc-coupon.php
/**
* Modify the coupon errors:
*/
add_filter( 'woocommerce_coupon_error', 'wpq_coupon_error', 10, 2 );
function wpq_coupon_error( $err, $err_code ) {
return ( '103' == $err_code ) ? '' : $err;
}
Vielen Dank für diese Seite: http://wpquestions.com/WooCommerce_Remove_Coupon_code_already_applied_error_message/10598
Ich habe es für error.php
Datei gemacht. Dateipfad ist woocommerce/templates/notices/error.php
<ul class="woocommerce-error" role="alert">
<?php
foreach ( $messages as $message ) :
if($message=="<strong>Billing Email address</strong> is a required field.") { $message="<strong>Email address</strong> is a required field."; }?>
<li><?php echo wp_kses_post( $message ); ?></li>
<?php endforeach; ?>
</ul>