我们的主题里有通知功能,那么如何实现删除待审文章时附上不通过的理由并通知投稿作者呢?
下面附上一个简单的代码供参考:
- add_action( 'post_submitbox_misc_actions', 'modown_delete_notice_metabox' );
 - function modown_delete_notice_metabox(){
 - global $post;
 - echo '<div class="misc-pub-section"><a href="javascript:;" rel="external nofollow" class="submitdelete modown-delete-notice" data-id="'.$post->ID.'">移动至回收站并通知作者</a></div>
 - <script>
 - jQuery(".modown-delete-notice").click(function(){
 - var ret = prompt("删除理由", "");
 - if(ret !== null && ret != "") {
 - //console.log(ret);
 - jQuery.ajax({
 - url: ajaxurl,
 - data: {
 - pid: jQuery(this).data("id"),
 - why: ret,
 - action: "modown_delete_notice"
 - },
 - dataType: "json",
 - type: "POST",
 - success: function(t) {
 - if(t.status == 1){
 - location.href="/wp-admin/edit.php" rel="external nofollow" ;
 - }else{
 - alert(t.msg);
 - }
 - },
 - error: function(XMLHttpRequest, textStatus, errorThrown) {
 - }
 - })
 - }
 - });
 - </script>
 - ';
 - }
 - function modown_delete_notice_callback(){
 - global $wpdb,$current_user;
 - date_default_timezone_set('Asia/Shanghai');
 - $status = 0;$msg = '处理失败';
 - if(current_user_can('administrator')){
 - $post_id = $_POST['pid'];
 - $cpost = get_post($post_id);
 - _mbt_add_notice($cpost->post_author, sprintf(__('您好,您发表的文章《%s》审核不通过,原因:'.$_POST['why'].'。','mobantu'), $cpost->post_title), 'post_trash', $post_id);
 - wp_trash_post($post_id);
 - $status = 1;
 - }
 - $result = array(
 - 'status' => $status,
 - 'msg' => $msg
 - );
 - header('Content-type: application/json');
 - echo json_encode($result);
 - exit;
 - }
 - add_action( 'wp_ajax_modown_delete_notice', 'modown_delete_notice_callback');
 
