使用 Widget Logic Plugin 根据条件隐藏 Widget
Hide Widget based on condition using Widget Logic Plugin
我的网站 (http://www.chicagokaraokenight.com/wordpress) 是一个卡拉 OK 目录,酒吧可以在其中免费列出卡拉 OK 之夜或升级到高级或特色高级列表(付费套餐)以获得更强大的配置文件。
作为升级到付费包的好处的一部分,我想让付费列表中的一些小部件消失。
我的主题作者 (Listify) 推荐了插件 Widget Logic 并表示如下:
Use https://wordpress.org/plugins/widget-logic/ to show/hide a widget depending on certain criteria.
Using something like:
wc_paid_listings_get_user_package( $package_id )
我仍然不太清楚我应该编辑逻辑来表达什么,希望有人能提供帮助。我知道如何获取包裹 ID(如果我将鼠标悬停在产品页面上的包裹上,我可以看到它们)。
我希望基于付费包列表隐藏的小部件是 Google 广告、最近的列表和特色列表。
谢谢!
更新: WC 付费列表插件开发人员在我提到免费包 ID 是 971 后给了我这个代码和信息:
global $post;
$used_package = get_post_meta( $post->ID, '_package_id', true );
if ( 971 === $used_package ) {
// Free
}
You could wrap this in a custom function to use in widget logic:
function job_was_posted_with_package( $package_id ) {
global $post;
$used_package = get_post_meta( $post->ID, '_package_id', true );
return $package_id == $used_package;
}
Called via:
job_was_posted_with_package( 971 );
我现在有我需要的东西吗?谁能帮我确定什么需要进入 functions.php,什么应该进入 Widget Logic 等等?
Widget 逻辑在内部工作的形式上非常简单。
我假设您已经创建了一个小部件,您需要做的是制作或使用 returns 一个 Boolean
的函数
function is_paid_member(){
// Verification Code here
return TRUE;
}
然后将 is_paid_member()
放置在受影响的 Widget 的 widget 逻辑字段中。
如果您可以为验证方法打印一些代码,我很可能可以编辑答案以使其可行。
请澄清以下几点,Widget 是否始终在管理界面中可用?如果是,那么它将超出 Widget Logic 范围,这会影响在前端显示的大部分激活的 Widget。
Per Mike Jolley 来自 WP 付费列表,正确的代码是:
function job_was_posted_with_package( $package_id ) {
global $post;
$used_package = get_post_meta( $post->ID, '_package_id', true );
return $package_id == $used_package;
}
应放在 functions.php 文件中。
然后:
( ! job_was_posted_with_package( ID ) && ! job_was_posted_with_package( ID ) )
或
job_was_posted_with_package( ID )
应该是在您想要 show/hide 的小部件上输入到小部件逻辑的条件。
我的网站 (http://www.chicagokaraokenight.com/wordpress) 是一个卡拉 OK 目录,酒吧可以在其中免费列出卡拉 OK 之夜或升级到高级或特色高级列表(付费套餐)以获得更强大的配置文件。
作为升级到付费包的好处的一部分,我想让付费列表中的一些小部件消失。
我的主题作者 (Listify) 推荐了插件 Widget Logic 并表示如下:
Use https://wordpress.org/plugins/widget-logic/ to show/hide a widget depending on certain criteria.
Using something like:
wc_paid_listings_get_user_package( $package_id )
我仍然不太清楚我应该编辑逻辑来表达什么,希望有人能提供帮助。我知道如何获取包裹 ID(如果我将鼠标悬停在产品页面上的包裹上,我可以看到它们)。
我希望基于付费包列表隐藏的小部件是 Google 广告、最近的列表和特色列表。
谢谢!
更新: WC 付费列表插件开发人员在我提到免费包 ID 是 971 后给了我这个代码和信息:
global $post; $used_package = get_post_meta( $post->ID, '_package_id', true ); if ( 971 === $used_package ) { // Free }
You could wrap this in a custom function to use in widget logic:
function job_was_posted_with_package( $package_id ) { global $post; $used_package = get_post_meta( $post->ID, '_package_id', true ); return $package_id == $used_package; }
Called via:
job_was_posted_with_package( 971 );
我现在有我需要的东西吗?谁能帮我确定什么需要进入 functions.php,什么应该进入 Widget Logic 等等?
Widget 逻辑在内部工作的形式上非常简单。
我假设您已经创建了一个小部件,您需要做的是制作或使用 returns 一个 Boolean
的函数function is_paid_member(){
// Verification Code here
return TRUE;
}
然后将 is_paid_member()
放置在受影响的 Widget 的 widget 逻辑字段中。
如果您可以为验证方法打印一些代码,我很可能可以编辑答案以使其可行。
请澄清以下几点,Widget 是否始终在管理界面中可用?如果是,那么它将超出 Widget Logic 范围,这会影响在前端显示的大部分激活的 Widget。
Per Mike Jolley 来自 WP 付费列表,正确的代码是:
function job_was_posted_with_package( $package_id ) {
global $post;
$used_package = get_post_meta( $post->ID, '_package_id', true );
return $package_id == $used_package;
}
应放在 functions.php 文件中。
然后:
( ! job_was_posted_with_package( ID ) && ! job_was_posted_with_package( ID ) )
或
job_was_posted_with_package( ID )
应该是在您想要 show/hide 的小部件上输入到小部件逻辑的条件。