Php Wordpress自定义批量操作处理程序未启动

Php Wordpress自定义批量操作处理程序未启动,php,wordpress,custom-wordpress-pages,Php,Wordpress,Custom Wordpress Pages,我是Wordpress和PHP的新手,正在尝试为自定义帖子向批量编辑列表添加自定义字段。我关注了下面的博文,但我的处理批量操作回调没有启动: 这是我的密码: /** * Adds a new item into the Bulk Actions dropdown for custom products list. */ function register_my_bulk_actions( $bulk_actions ) { $bulk_actions['out_of_stock'

我是Wordpress和PHP的新手,正在尝试为自定义帖子向批量编辑列表添加自定义字段。我关注了下面的博文,但我的
处理批量操作
回调没有启动:

这是我的密码:

/**
 * Adds a new item into the Bulk Actions dropdown for custom products 
list.
 */
function register_my_bulk_actions( $bulk_actions ) {
    $bulk_actions['out_of_stock'] = 'Mark as Out of Stock';
    $bulk_actions['in_stock'] = 'Mark as In Stock';
    debug_to_console( 'Hello console' );
    return $bulk_actions;
}
add_filter( 'bulk_actions-edit-custom_product', 'register_my_bulk_actions' );

/**
 * Handles the bulk action above.
 * NOT FIRING!!
 */
function my_bulk_action_handler( $redirect_to, $action, $post_ids ) {
    debug_to_console( 'Running handler' );
    if ( $action !== 'out_of_stock' || $action !== 'in_stock') {
        return $redirect_to;
    }

    // let's remove query args first
    $redirect_to = remove_query_arg( array( 'out_of_stock_done', 'in_stock_done' ), $redirect );

    foreach ( $post_ids as $post_id ) {
        if ($action === 'out_of_stock ') {
            wp_update_post( array(
                'ID' => $post_id,
                'in_stock' => 'no',
            ) );
            $redirect_to = add_query_arg( 'out_of_stock_done', count( $post_ids ), $redirect_to );
        }
        if ($action === 'in_stock ') {
            wp_update_post( array(
                'ID' => $post_id,
                'in_stock' => 'yes',
            ) );
            $redirect_to = add_query_arg( 'in_stock_done', count( $post_ids ), $redirect_to );
        }
    }

    return $redirect_to;
}
add_filter( 'handle_bulk_actions-edit-custom_product', 'my_bulk_action_handler', 10, 3 );

/**


* Shows a notice in the admin once the bulk action is completed.
 */
function my_bulk_action_admin_notice() {
    debug_to_console( 'Running notifier' );
    if ( ! empty( $_REQUEST['bulk_out_of_stock'] ) ) {
        $success_oos = intval( $_REQUEST['bulk_out_of_stock'] );

        printf(
            '<div id="message" class="updated fade">' .
            _n( '%s product updated!', '%s products updated!', $drafts_count, 'domain' )
            . '</div>',
            $success_oos
        );
    }
}
add_action( 'admin_notices', 'my_bulk_action_admin_notice' );
/**
*将新项添加到自定义产品的“批量操作”下拉列表中
列表
*/
函数寄存器\我的\批量\操作($bulk\操作){
$bulk_actions[“缺货”]=“标记为缺货”;
$bulk_actions['in_stock']=“标记为in stock';
调试到控制台(“你好控制台”);
返回$bulk_操作;
}
添加过滤器('bulk_actions-edit-custom_product'、'register_my_bulk_actions');
/**
*处理上面的批量操作。
*不要开枪!!
*/
函数my_bulk_action_处理程序($redirect_to,$action,$post_id){
调试到控制台(“正在运行的处理程序”);
如果($action!='out|u of|u stock'|$action!='in|u stock'){
返回$redirect_到;
}
//让我们先删除查询参数
$redirect\u to=remove\u query\u arg(数组('out\u of\u stock\u done'、'in\u stock\u done'),$redirect);
foreach($post\u id作为$post\u id){
如果($action==‘缺货’){
wp_更新_发布(阵列)(
'ID'=>$post\u ID,
'库存'=>'否',
) );
$redirect\u to=add\u query\u arg('out\u of\u stock\u done',count($post\u id),$redirect\u to);
}
如果($action==='in_stock'){
wp_更新_发布(阵列)(
'ID'=>$post\u ID,
“库存”=>“是”,
) );
$redirect\u to=add\u query\u arg('in\u stock\u done',count($post\u id),$redirect\u to);
}
}
返回$redirect_到;
}
添加过滤器('handle\u bulk\u actions-edit-custom\u product','my\u bulk\u action\u handler',10,3);
/**
*批量操作完成后,在管理中显示通知。
*/
函数my_bulk_action_admin_notice(){
调试到控制台(“运行通知程序”);
如果(!empty($_请求['bulk_out_of_stock'])){
$success\u oos=intval($u请求['bulk\u out\u stock']);
printf(
'' .
_n('%s产品更新!'、'%s产品更新!'、$drafts\u count、'domain')
. '',
$success\u oos
);
}
}
添加操作(“管理通知”、“我的批量操作管理通知”);

谢谢

我知道这个答案已经晚了几个月,但今天我遇到了这个问题,直到我意识到我在尝试测试它时实际上没有检查任何帖子。如果这是你的问题,我想你现在已经解决了,但如果其他人遇到这种情况,他们会偶然发现这个问题,寻找解决方案(正如我所遇到的),这就是你的问题所在。

请说明你安装了什么版本的WordPress。嗯。。。WP引擎插件v3.2.1您的问题可能是您的WP引擎版本没有更新过滤器“handle\u bulk\u actions-edit-custom\u product”所在的核心文件(添加在WordPress 4.7中)