获取当前用户,将用户发布状态更改为已发布

时间:2017-02-08 作者:Beyond55

我正在做一个预订网站,在那里船舱是一个定制的职位。用户通过Woocommerce订阅付费,使其小屋在网站上可见。

因此,我需要检查用户是否有活动订阅才能发布创建的帖子。

目前,我检查用户是否有如下活动订阅:

if (has_woocommerce_subscription(\'\',\'\',\'active\')) {
虽然这是可行的,但显然并没有改变岗位状态。

所以我的问题是,如何获取当前用户、用户的帖子id、状态等,并将帖子状态更改为已发布?

我在另一个帖子中发现了这一点,尽管它将帖子状态从“已发布”更改为“草稿”,所以我猜它可能类似?

add_action(\'publish_post\', \'check_user_publish\', 10, 2);

function check_user_publish ($post_id, $post) {

    $user_id = get_current_user_id();

    if ($user_id != $post->post_author)
        return;

    $query = array(
        \'ID\' => $post_id,
        \'post_status\' => \'draft\',
    );
    wp_update_post( $query, true );

}}
理想情况下,如果可能的话,该检查应该每天运行一次?

谢谢

1 个回复
SO网友:contemplator

数据库为post的每个属性保存多行。除在行之外的所有应具有状态继承。所以我只希望post\\u id是正确的。

无论如何,是的,你认为它是相似的是正确的:

$query = array(
  \'ID\' => $post_id,
  \'post_status\' => \'publish\',
);
wp_update_post( $query, true );
哦,还有

add_action(\'publish_post\'...
在发布帖子时添加检查(因此无需每天检查一次)。

相关推荐

是否可以取消对特定帖子类型的POSTS_PER_PAGE限制?

我想知道我是否可以取消特定帖子类型的posts\\u per\\u页面限制。在存档中。php页面我显示不同的帖子类型,对于特定的“出版物”帖子类型,我想显示所有帖子。我如何在不影响传统“post”类型的情况下实现这一点?