如何检测 Jmeter 板上是否使用了“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>
但是这感觉有点奇怪,不是有一个类似is_myaccount_dashboard()
的函数吗?
6条答案
按热度按时间fcy6dtqo1#
测试和工程。
是的,当然有**
is_account_page()
原生WooCommerce条件,在客户的账户页面上返回真。下面是使用
is_account_page()
和is_user_logged_in()
的示例。要获取"我的帐户"链接url,您可以使用: *get_permalink( get_option('woocommerce_myaccount_page_id') )
*参考:
之后,您可以Override WooCommerce Templates via a Theme使用我的帐户模板来微调更多WooCommerce行为...
3zwtqj6y2#
要检测您所在的确切页面,在我的帐户区域内,(允许您确定正在使用的模板),我不认为Woocommerce提供了一种方法。
我认为您必须使用普通PHP获取当前URL,并将其与设置为Dashboard/My Account主页的页面的URL进行比较。
例如:
Woocommerce的
is_account_page()
条件函数将为所有我的帐户子页面返回真,因此不能用于确定您是否专门在 Jmeter 板页面上。dpiehjr43#
我也有同样的问题(几年后,哈哈).对于那些看到答案并想知道为什么它没有帮助的人来说,woocommerce中有一些端点检测功能可以做你想做的事情.你可以阅读here中可用的功能列表.
这是直接从woocommerce文档中获取的。我只是复制它,以防将来链接中断
is_account_page()=〉在客户的帐户页面上返回true。
is_wc_endpoint_url()=〉查看任何WooCommerce端点时返回真
is_wc_endpoint_url('order-pay')=〉显示订单支付的端点页面时。
is_wc_endpoint_url('order-received')=〉显示收到订单的端点页面时。
is_wc_endpoint_url('view-order')=〉显示查看顺序的端点页面时。
is_wc_endpoint_url('edit-account')=〉显示编辑帐户的端点页面时。
is_wc_endpoint_url('edit-address')=〉当显示编辑地址的端点页面时。
is_wc_endpoint_url('lost-password')=〉当显示丢失密码的端点页面时。
is_wc_endpoint_url('customer-logout')=〉显示客户注销的端点页面时。
is_wc_endpoint_url('add-payment-method')=〉显示添加支付方式的端点页面时。
epfja78i4#
事实上,我发现这个条件似乎工作正常,以检测WC Jmeter 板页面与本机WC代码只:
ars1skjm5#
假设您的帐户页面位于/account/,这将检测您的 Jmeter 板。
如果你只执行
is_page("account")
,那么所有账户页面都会触发条件,但是,由于dashboard不像“view-order”或“last-password”那样被视为WC端点,所以这个简单的检查就可以完成这项工作。6pp0gazn6#
我还需要确定 Jmeter 板具体,发现了这个问题,但我不喜欢任何答案和WooCommerce仍然没有内置的标签来做到这一点...
我有两个问题的答案,第一个是使用
is_wc_endpoint_url()
(不是万无一失),第二个是比较网址(个人口味,我猜?)is_wc_endpoint_url()
可以为主题或插件添加的端点返回false,因此您可以获得假阴性。有一个过滤器,因此您可以添加自己的端点,但您不能相信插件会这样做。1.比较URL对我来说有点笨拙。你可能会得到可信的结果,而且很简单,所以这不一定是一个坏方法。尽管我会放弃硬编码URL的部分,或者至少允许翻译。
现在,如果你想一想,WooCommerce本身知道什么时候加载dashboard.php,所以我只是把代码和重构它,以简单地识别 Jmeter 板:
对我来说,这是最简单的方法,尽管如果正确的话,比较URL可能就足够了,但是在这个问题上你不能相信
is_wc_endpoint_url()
。希望这能帮助任何还在寻找
is_dashboard()
或is_account_page('dashboard')
的人