Имеется код, который добавляет действие для заказов в Woo, и при выборе заказов по идее должен перенаправить на url с параметрами, но параметры при возврате теряются...
// Добавляем опцию в селект заказов Woo
function add_custom_order_action($action) {
$action['custom_action'] = 'Custom Action';
return $action;
}
add_filter('bulk_actions-edit-shop_order', 'add_custom_order_action');
// Обработчик
function bulk_action_handler($redirect_to, $doaction, $post_ids) {
if ($doaction !== 'custom_action') {
return $redirect_to;
}
$post_ids = implode(',', $post_ids);
$redirect_to = wp_nonce_url(admin_url('?some_var=true&post=' . $post_ids . '&type=custom_action'), 'custom_string');
// Если на данном этапе выбрать два заказа с айди 1111 и 2222, то на выходе получаем
// http://website.com/wp-admin/?some_var=true&post=1111%2C2222&type=custom_action&_wpnonce=f222f222f22
// Все хорошо, но меняем символы на нормальный вид
$redirect_to = str_replace('&','&',$redirect_to);
$redirect_to = str_replace('%2C',',',$redirect_to);
// Ожидание:)))
// http://website.com/wp-admin/?some_var=true&post=1111,2222&type=custom_action&_wpnonce=f222f222f22
return $redirect_to;
// Но после возврата я получаю вот это:
// http://website.com/wp-admin/?some_var=true&type=custom_action&_wpnonce=f222f222f22
// По какой то причине после возврата, post аргумент убирается.
}
add_filter('handle_bulk_actions-edit-shop_order', 'bulk_action_handler', 10, 3);
Буду благодарен за помощь