【问题标题】:WooCommerce Notice Messages, how do I edit them?WooCommerce 通知消息,如何编辑它们?
【发布时间】:2014-11-29 02:27:12
【问题描述】:

我正试图找出 WooCommerce 在 WooCommerce 中出现成功、错误或通知时在哪里创建消息。我想编辑这些消息以更整齐地适应场景并编辑 HTML。这些消息位于何处?如何编辑它们?

【问题讨论】:

  • 错误出现在很多地方...您关心哪些错误?
  • 没有一个地方可以生成所有这些错误/通知/成功消息?
  • 不是,结帐流程、购物车、管理员等都有错误。您指的是哪些错误?
  • 结帐流程和购物车。

标签: wordpress woocommerce


【解决方案1】:

其中许多直接在插件文件中 - 不幸的是。有些消息与过滤器挂钩,允许您在不弄乱插件文件的情况下编辑它们,但情况并非总是如此。

您要更改的消息是“产品名称已成功添加到您的购物车”。这是在 wc-cart-functions.php 中的函数 wc_add_to_cart_message 中设置的,此函数允许您使用过滤器进行更改:

wc_add_notice( apply_filters( 'wc_add_to_cart_message', $message, $product_id ) );

所以在你的functions.php文件中你可以添加如下内容:

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

【讨论】:

  • 正确,但你应该使用 apply_filters 而不是 add_filter
  • 它应该是add_filter( 'filter', 'function', 10, 2 );10 是优先级,2 是参数的数量(捕捉$product_id 所必需的。
  • 晚了,但如果你想要更高级的自定义(eq 自定义 HTML 用于通知本身),请参阅:stackoverflow.com/a/60971236/4668696
【解决方案2】:

打开插件文件并搜索wc_add_notice:

这个函数有一个过滤器:

apply_filters( 'woocommerce_add_' . $notice_type, $message );

$notice_type 是在所有这些事件中传递的第二个参数。

使用这样的东西应该可以:

add_filter( 'woocommerce_add_error', function( $message ) {
    if( $message == 'Some message' )
        $message = '';

    return $message;
});

【讨论】:

  • 只是提醒您和其他任何感兴趣的人。您可以在包含文件夹中的 wc-notice-functions.php 文件中找到通知的功能。
  • 如何更动态地生成消息,例如“查看购物车产品名称已成功添加到您的购物车”
  • 我没有任何可以测试的设置。您是否尝试检查到达过滤器的消息?
  • 我做到了。它没有帮助
【解决方案3】:

这里提到的过滤器可以很好地编辑消息本身,但是如果你想编辑包含通知消息的实际 HTML 标记,那么你需要使用templates > notices 下的通知模板。

这里有三个不同的文件,每个文件用于不同类型的通知。就我而言,我想在优惠券应用成功通知中添加一个类,所以我将success.php 复制到我的主题文件中。然后我的代码如下所示:

<?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; ?>

【讨论】:

    【解决方案4】:

    我遇到了这个答案,并且能够为生产站点实施。此答案与 woocommerce 错误代码通知有关。您需要在单独的类文件 (~woocommerce/includes/) 中找到代码。出于我的目的,代码位于 ~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;
     }
    

    感谢这个页面:http://wpquestions.com/WooCommerce_Remove_Coupon_code_already_applied_error_message/10598

    【讨论】:

      【解决方案5】:

      我是为error.php 文件做的。文件路径为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>
      

      【讨论】:

        猜你喜欢
        • 2021-10-11
        • 2019-10-24
        • 2014-11-10
        • 1970-01-01
        • 1970-01-01
        • 2018-05-31
        • 1970-01-01
        • 2021-07-25
        • 1970-01-01
        相关资源
        最近更新 更多