发帖前付费

时间:2018-07-09 作者:Amirition

我希望我的用户在每次发布帖子之前付费。我搜索了一些在帖子发布之前触发的钩子,但所有这些钩子都是在帖子成功发布之后运行的,我不想这样。pre\\u post\\u update、publish\\u post、save\\u post和wp\\u insert\\u post是可用的挂钩。如果在发布帖子之前没有运行任何操作,我如何防止发布帖子是用户想要发布帖子时不付费?

Edit: 现在,我使用此代码检查帖子是否正在发布,但此函数不起作用,我在自定义插件中使用此函数。

function af_check_payment( $new_status, $old_status, $post ) {
    if ( $new_status == \'publish\' && $old_status != \'publish\' && $post->post_type == \'barbershop\' ) {
        wp_transition_post_status( \'pending\', $old_status, $post );
        echo \'At least i know its publishing\';
    }
}

add_action( \'transition_post_status\', \'af_check_payment\', 10, 3 );
此功能不会回显或更改任何post状态。

2 个回复
最合适的回答,由SO网友:Trilok 整理而成

Use below code

add_action(\'transition_post_status\', \'send_new_post\', 10, 3);

// Listen for publishing of a new post
function send_new_post($new_status, $old_status, $post) {

  if(\'publish\' === $new_status && \'publish\' !== $old_status && $post->post_type === \'post\') {
    // Do something!
  }

}
SO网友:Quang Hoang

最简单的方法是在使用挂钩添加帖子之前检查所有条件并付款。目前没有钩子可以帮助您在付款后创建帖子。

结束