函数缺少操作挂钩

时间:2012-11-29 作者:Kyle

我已经将一个操作绑定到状态更改中,它在后端工作。但是,使用前端按钮更新post状态不会触发该操作(http://wordpress.stackexchange.com/questions/17794/publish-pending-article-from-front-end-with-a-button),但它会更新post状态。

所以我有一个按钮,可以将帖子从“草稿”更新为“拒绝”

     function show_reject_button(){
       global $post;

        echo \'<form name="front_end_reject" method="POST" action="">
            <input type="hidden" name="pid2" id="pid2" value="\'.$post->ID.\'">
            <input type="hidden" name="FE_REJECT" id="FE_REJECT" value="FE_REJECT">
            <input type="image" src="https://---.com/images/logo1/sreject.png" alt="reject" title="Reject this reservation" style="background: none !important; border:   none !important;">
        </form>\';
       }

    function change_post_status($post_id,$status){
      $current_post = get_post( $post_id, \'ARRAY_A\' );
      $current_post[\'post_status\'] = $status;
      wp_update_post($current_post);
     }  

   if (isset($_POST[\'FE_REJECT\']) && $_POST[\'FE_REJECT\'] == \'FE_REJECT\'){
     if (isset($_POST[\'pid2\']) && !empty($_POST[\'pid2\'])){
    change_post_status((int)$_POST[\'pid2\'],\'rejected\');
     }
    }
我要感谢班纳特的密码。

我将一篇文章从草稿更改为被拒绝的动作绑定到一个函数中,用于更改一些帖子元。

      add_action (\'draft_to_rejected\', \'void_payment_hold\' );   
      function void_payment_hold() {

     global $post;

      $type = get_post_type( $post->ID );

        if( $type == \'tribe_events\' ){

            $order_id = get_post_meta($post->ID, \'order\', TRUE);

            $current_hold = get_post_meta($order_id, \'hold\', TRUE);

            $released_amount = get_post_meta($post->ID, \'amount\', TRUE);

            $remaining_hold = $current_hold - $released_amount;

            __update_post_meta($order_id, \'hold\', $remaining_hold);     

         }

       }
当我在后端执行此操作时,它会工作,但当我使用按钮更新post状态时,该函数不会执行。有人知道为什么会这样吗?

谢谢你抽出时间

1 个回复
SO网友:Kyle

还没有完全“解决”——我仍然不知道为什么wp\\u update\\u post()没有实现{old status}到{em>{new status}的转换

对于我的情况,我只是将下面的函数添加到上面按钮的唯一实例中。不太理想,但它很管用。

结束

相关推荐

Front-End Post Submission

我正在尝试添加一个表单,用户可以从前端提交帖子。我正在学习本教程:http://wpshout。com/wordpress从前端提交帖子/我正在做的是添加this code 到我的一个页面模板。表单显示正常,但当我单击“提交”按钮时,它会显示“Page not found error“”许多评论者说这不起作用。谁能给我指出正确的方向吗?代码是否不完整?有缺陷吗?我做错什么了吗?谢谢Towfiq I。