我有一位使用Restrict content pro的客户。虽然客户喜欢限制内容专业版,但是有一个问题 - 他希望在10天后将帖子自动更改为付费用户,而RCP(限制内容专业版)不提供此功能。
即使使用试用帖也只允许订阅用户或登录用户,所以我必须根据客户需求进行修改。
因此,在帖子的订阅级别上有默认选项“all”,如果您选择它,则意味着该帖子将公开,但如果您选择订阅级别到另一个订阅说高级订阅该帖子只有登录用户才能看到。
我希望此选项在发布日期达到10天时自动更改,因此如果帖子尚未发布10天,则会免费。但是,如果帖子达到10天,它将是溢价。希望你能帮我解决这个问题
以下是原始代码:
case 'levels':
echo '<select name="', $field['id'] . '" id="' . $field['id'] . '">';
$levels = rcp_get_subscription_levels( 'all', false );
echo '<option value="all">' . __( 'All', 'rcp' ) . '</option>';
foreach ($levels as $level) {
echo '<option value="' . $level->id . '"', $meta == $level->id ? ' selected="selected"' : '', '>', $level->name, '</option>';
}
echo '</select>';
break;
这是我修改后的代码无效:
//modification end here
$pubdate = the_date();
if (($pubdate < 10) == true){
$levels = rcp_get_subscription_levels( 'all', false );
echo '<option value="all">' . __( 'All', 'rcp' ) . '</option>';
} else{
foreach ($levels as $level) {
echo '<option value="' . $level->id . '"', $meta == $level->id ? ' selected="selected"' : '', '>', $level->name, '</option>';
}
}
//modification end here
答案 0 :(得分:0)
我认为您的解决方案存在的问题是您正在尝试更新管理员界面(用于选择是否希望您的内容仅由成员付费或访问)。换句话说,你试图在错误的地方破解代码。
相反,我会在您选择Restrict Content Pro的属性时查看正在保存的自定义字段。我只是在我的一个网站上运行测试,该网站也由Restrict Content Pro提供支持,在创建了一个虚拟帖子并为仅付费用户和特定用户计划配置之后,我注意到保存了一些自定义字段值(您我可以在数据库中使用phpMyAdmin或任何其他数据库界面看到这一点,我之所以建议使用它而不是WordPress中的自定义字段元数据是因为有些字段是序列化的,而不是在元框中显示。)
在我的测试中,我注意到以下值已更改为虚拟帖子。
Custom Field Name Example of Value
----------------------------------------
rcp_access_level None
rcp_subscription_level a:1:{i:0;s:1:"2";}
rcp_user_level All
因此,为了实现您需要的功能,我会尝试在WordPress cron作业中运行一个脚本,该脚本会在10天内搜索帖子,然后相应地更新帖子的这些自定义字段值。
为了查看要更改的内容,我建议您查看正在使用的代码 restrict-content-pro \ includes \ admin \ metabox.php第140行(**这可能与您的版本不同),以查看函数rcp_save_meta_data($ post_id)中的内容。
特别是,您可能需要更新rcp_subscription_level
值才能使用您希望保护内容的计划级别。相反,如果您希望用户级别保护您的内容,请更新rcp_user_level
。