php – 检测WooCommerce“我的帐户”页面的仪表板
作者:互联网
如何检测仪表板上是否使用了“myaccount / my-account.php”模板.
目前我使用:
<?php
global $wp;
if ( !isset($wp->query_vars['page']) ) {
?>
<a href="/mein-konto/">Back to my Account</a>
<?php } ?>
<div class="myaccount_content">
<?php
do_action( 'woocommerce_account_content' );
?>
</div>
但这感觉有点hacky.是不是有类似is_myaccount_dashboard()函数的东西?
解决方法:
更新:专门检测我的帐户“信息中心”页面
<?php
global $wp;
$request = explode( '/', $wp->request );
// If NOT in My account dashboard page
if( ! ( end($request) == 'my-account' && is_account_page() ) ){
?>
<a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id')); ?>">Back to my Account Dashboard</a>
<?php
}
?>
<div class="myaccount_content">
<?php
do_action( 'woocommerce_account_content' );
?>
</div>
经过测试和工作.
原始答案:
是的当然有is_account_page()本机WooCommerce条件,在客户的帐户页面上返回true.
以下是使用is_account_page()和is_user_logged_in()的示例.要获取我的帐户链接网址,您可以使用:get_permalink(get_option(‘woocommerce_myaccount_page_id’)).
if ( !is_account_page() ) { // User is NOT on my account pages
if ( is_user_logged_in() ) { // Logged in user
// Link to "My Account pages dashboard".
?>
<a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>" title="<?php _e('My Account', 'woocommerce'); ?>"><?php _e( 'My Account', 'woocommerce' ); ?></a>
<?php }
else { // User is NOT logged in
// Link to "Login / register page".
?>
<a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>" title="<?php _e( 'Login / Register','woocommerce' ); ?>"><?php _e( 'Login / Register', 'woocommerce' ); ?></a>
<?php
}
}
?>
参考:
> Official WooCommerce Conditional Tags
> Display My Account link in a template file
之后,您可以使用我的帐户模板Override WooCommerce Templates via a Theme来微调甚至更多的WooCommerce行为……
标签:wordpress,php,conditional,woocommerce,user-accounts 来源: https://codeday.me/bug/20190519/1134798.html