wake-up-neo.com

WooCommerce Notice Messages, wie bearbeite ich sie?

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?

13
Majo0od

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;
}
9
Yavor

Ö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;
});
10
brasofilo

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; ?>
3
Ollie Murphy

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

2
user3795286

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>
1
developer