在WooCommerce中更改通知的Html

时间:2021-05-05 作者:p01ntbr34k

我正在从头开始创建一个WooCommerce主题,我真的很想更改将默认WooCommerce消息包装在CartCheckout 第页。

我特别讨论的是在更新购物车或删除项目时,此元素中显示的默认消息:

<div class="woocommerce-message" role="alert">
        Your cart has been updated / Product was removed. Undo? 
</div>
我试过几种方法;

我正在覆盖默认值error.php, success.phpnotice.php 中的模板templates/notices 文件夹我总结道,这些似乎只用于其中的一些通知。例如,“我的错误”可以很好地使用错误模板。

我追踪到了我认为的罪魁祸首,一直到函数woocommerce_output_all_noticeswc-template-functions.php 文件我几乎可以肯定这就是它,因为它是我能找到的唯一函数,在包装容器中被调用(<div class="woocommerce-notices-wrapper"> 元素)。

函数如下所示:

function woocommerce_output_all_notices() {
    echo \'<div class="woocommerce-notices-wrapper">\';
    wc_print_notices();
    echo \'</div>\';
}
如果认为标记来自wc_print_notices() 作用

但是,当我在中查看此函数时wc-notice-functions.php... 它使用了我在#1..中提到的模板?

我做错了什么?有没有人有过适当修改这些消息标记的经验?

1 个回复
最合适的回答,由SO网友:p01ntbr34k 整理而成

在与一些闲散的WooCommerce人员交谈后,我意识到这里的问题可能是this pattern, 在里面frontend/cart.js - 事实上,我的商店使用WooCommerce提供的AJAX功能。

var show_notice = function( html_element, $target ) {
        if ( ! $target ) {
            $target = $( \'.woocommerce-notices-wrapper:first\' ) ||
                $( \'.cart-empty\' ).closest( \'.woocommerce\' ) ||
                $( \'.woocommerce-cart-form\' );
        }
        $target.prepend( html_element );
当AJAX更新后满足某些存储状态时,似乎会创建一个默认的新HTML元素并将其添加到包装器中。

相关推荐

static array on functions.php

在函数中。php中,我想访问数据库一次,以获取一个ACF对象,然后在本地“保存”它,以防止对数据库的进一步请求。我想首先在“init”钩子中调用以下函数。然后,假设,当我在以后的挂钩上调用它时,由于使用了“static”关键字,$current\\u store var已经设置好了,函数将在第一个“if”返回已经保存的静态var时停止。它不起作用-当访问稍后挂钩上的函数时,“isset($current\\u store)”返回false。我做错了什么?function get_current_store