编程语言
首页 > 编程语言> > php – 检测WooCommerce“我的帐户”页面的仪表板

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