繁体   English   中英

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

[英]Add custom html content in WooCommerce My Account Dashboard only

我正在将 WordPress 与 WooCommerce 和 WooCommerce 订阅插件一起使用,并且根据我的要求可以正常工作。

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

在此处输入图像描述

所以我研究并发现了这个页面/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/等所有页面中。我不想要它。

在此处输入图像描述

在此处输入图像描述

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

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

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

代码进入活动子主题(或活动主题)的functions.php文件。 测试和工作。

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

在此处输入图像描述

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

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

代码更改

而不是/wp-content/plugins/woocommerce/templates/myaccount/my-account.php ,你想 go 到: /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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM