使用Widget Logic Plugin根据条件隐藏窗口小部件

时间:2015-06-03 17:04:19

标签: wordpress plugins widget

我的网站(http://www.chicagokaraokenight.com/wordpress)是一个卡拉OK目录,酒吧可以免费列出卡拉OK之夜或升级到高级或特色高级列表(付费套餐)以获得更强大的个人资料。

作为升级到付费套餐的好处的一部分,我想让付费列表中的某些小部件消失。

我的主题作者(Listify)推荐插件 Widget Logic 并说出以下内容:

  

根据特定条件,使用https://wordpress.org/plugins/widget-logic/显示/隐藏窗口小部件。

     

使用类似的东西:

     

wc_paid_listings_get_user_package($ package_id)

我仍然有点不清楚我应该编辑逻辑说什么,并希望有人可以提供帮助。我知道如何获取包ID(如果我将鼠标悬停在产品页面上的包中,我可以看到它们)。

我希望隐藏的小部件是基于付费套餐的列表,包括Google广告,最近的商家信息和精选商品详情。

谢谢!

更新:在我提到免费软件包ID为971之后,WC付费列表插件开发人员给了我这些代码和信息:

global $post;
$used_package = get_post_meta( $post->ID, '_package_id', true );
if ( 971 === $used_package ) {
// Free
}
     

您可以将其包装在自定义函数中以在窗口小部件逻辑中使用:

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;
}
     

通过:

调用
job_was_posted_with_package( 971 );

我现在有需要吗?有人可以帮我确定哪些需要进入functions.php,Widget Logic应该怎么做等等?

2 个答案:

答案 0 :(得分:0)

Widget Logic在内部工作方式上非常直接。

我假设你已经创建了一个小部件,你需要做的是制作或使用一个返回布尔的函数

function is_paid_member(){
   // Verification Code here

   return TRUE;
}

然后将is_paid_member()放在受影响的小部件的小部件逻辑字段中。

如果你可以为验证方法打印一些代码,我很可能会编辑答案以使其可行。

请澄清以下内容,Widget是否始终在Administrative界面中可用?如果是,那么它将超出Widget Logic范围,这会影响显示在前端的大多数激活的Widgets。

答案 1 :(得分:0)

来自WP付费列表的Mike Jolley,正确的代码是:

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 )

应该是您要显示/隐藏的小部件上输入到Widget Logic的条件。