[英]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.