WooCommerce:工单批量操作在点击时设置变量

时间:2019-01-02 20:33:21

标签: php wordpress woocommerce orders bulk

我为订单创建了一个自定义WooCommerce批量操作。我的问题现在是:是否可以检查后端何时按下批量操作?因为当我的自定义操作被触发时,我想向所选订单添加一个meta。我只想知道这是否可行,如果可以,我该如何选择功能呢?

代码:

/**
 * Add custom bulk actions in woocommerce order overview
 */
add_filter( 'bulk_actions-edit-shop_order', 'custom_shop_order_bulk_actions', 999 );
function custom_shop_order_bulk_actions( $actions ) {
    //Remove on hold, personal data and processing status mark
    unset( $actions['mark_on-hold'], $actions['remove_personal_data'], $actions['mark_processing'] );

    $actions['invoice-external']    = __( 'PDF Rechnung Extern' );

    return $actions;
}

我的建议:

add_filter( 'hook_into_bulk_action-invoice-external', 'do_something' )
function do_something() {
    global $abc = 1;
}

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式使用handle_bulk_actions-edit-shop_order过滤器挂钩:

// Process the bulk action from selected orders
add_filter( 'handle_bulk_actions-edit-shop_order', 'process_bulk_actions_edit_shop_order', 10, 3 );
function process_bulk_actions_edit_shop_order( $redirect_to, $action, $post_ids ) {
    if ( $action === 'invoice-external' ){
        // Add (or update) order post meta data
        update_post_meta( $post_id, '_your_meta_key', $some_value );
    }
    return $redirect_to;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。

查看以下相关答案:Process custom bulk action on admin Orders list in Woocommerce