@sukraman225

Почему при возврате переменной обработчика на странице заказов Woo не передаются параметры?

Имеется код, который добавляет действие для заказов в 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);


Буду благодарен за помощь
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы