微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅在 WooCommerce 我的帐户仪表板中添加自定义 html 内容

如何解决仅在 WooCommerce 我的帐户仪表板中添加自定义 html 内容

我将 wordpress 与 WooCommerce 和 WooCommerce 订阅插件一起使用,并且按照我的要求运行良好。

现在我想在登录系统后在 div 页面即 (http://www.example.com/my-account) 添加我的自定义 /my-account/

enter image description here

所以我研究并发现了这个页面 /wp-content/plugins/woocommerce/templates/myaccount/my-account.PHP 并且那个页面有以下代码

<?PHP 
defined( 'ABSPATH' ) || exit;

do_action( 'woocommerce_account_navigation' ); ?>

<div class="woocommerce-MyAccount-content">
    <?PHP       
        do_action( 'woocommerce_account_content' );
    ?>
</div>

因此我添加了类似这样的代码

<div>Test</div>

低于 do_action( 'woocommerce_account_content' ); 但随后它出现在所有页面中,例如 my-account/orders//my-account/downloads/ 等......我不想要它。

enter image description here

enter image description here

如何仅在 /my-account/ 页面显示内容?此外,如何通过复制我的活动主题之一来覆盖此页面,以便我不需要更改插件的核心文件

解决方法

要使其仅显示在我的帐户仪表板中而不覆盖任何模板文件,您可以改用以下挂钩函数:

add_action( 'woocommerce_account_dashboard','custom_account_dashboard_content' );
function custom_account_dashboard_content(){
    echo '<div>' . __("Test","woocommerce") . '</div>';
}

代码位于活动子主题(或活动主题)的functions.php 文件中。经测试有效。

自定义 html 内容仅按预期添加到我的帐户仪表板(不覆盖任何模板文件)

enter image description here

注意:这需要替换回 WooCommerce 原始相关模板文件。

,

您在模板方面走在正确的轨道上,但还不够深入。我们可以通过另一个 do_action() 看到它仍在您正在处理的代码中提取另一个模板 - 在本例中,是专门用于该仪表板页面的代码。

要更改的代码

代替 /wp-content/plugins/woocommerce/templates/myaccount/my-account.php,你想去: /wp-content/plugins/woocommerce/templates/myaccount/dashboard.php

在那里,您会找到此代码(显示默认消息),您可以在那里添加您的自定义 div,它只会显示在仪表板上。在第 50 行(撰写本文时)你会看到

    printf(
        wp_kses( $dashboard_desc,$allowed_html ),esc_url( wc_get_endpoint_url( 'orders' ) ),esc_url( wc_get_endpoint_url( 'edit-address' ) ),esc_url( wc_get_endpoint_url( 'edit-account' ) )
    );
    ?>
</p>

您可以在结束 </p> 下添加任何自定义代码以保留在段落下方。如果你想把它放在段落上方,你可以在第 41 行左右开始写,再次在结束 </p>

之后

覆盖模板

您可能希望在您的主题中覆盖该模板,因此在您的主题中,创建这样的文件夹/文件结构:

[yourtheme]/woocommerce/myaccount/dashboard.php。您有意不在主题覆盖中包含 templates。您可以将 dashboard.php 复制到此文件夹中并编辑该版本。

有一些关于模板结构和覆盖的开发人员文档,可以在这里查看:https://docs.woocommerce.com/document/template-structure/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。