
Как да направим филтър на поръчки в администрацията на WooCommerce по персонализирано поле или Custom Field, който сме създали в нашите order-и (в случая post_type-а е shop_order):
1. Нека първо да направим функцията, която ще промени главната заявка и тя да се стартира само, когато typenow е ‘shop_order’. В случая следим променливата paybyw дали е равна на “on” и ще филтрираме по този критерии.
function so_filter_shop_order3($query) { global $typenow; $user = wp_get_current_user(); if ($query->is_main_query() && $typenow === 'shop_order') { $query->set( 'meta_key', 'paybyw' ); $query->set( 'meta_value', 'on' ); } }
2. Следим, дали сесията ни е я има и въз основа на стойността й включваме или изключваме дадена функция.
if ($_GET['order_type']) { $_SESSION["order_type"] = (int)$_GET['order_type']; }elseif ($_GET['order_type'] == '0') { $_SESSION["order_type"] = 0; } switch ($_SESSION["order_type"]) { case 0: break; case 3: add_action( 'pre_get_posts', 'so_filter_shop_order3' ); break; case 4: add_action( 'pre_get_posts', 'so_filter_shop_order4' ); break; case 5: add_action( 'pre_get_posts', 'so_filter_shop_order5' ); break; }