Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在WooCommerce管理订单列表上创建过滤器下拉列表?_Php_Wordpress_Woocommerce_State_Orders - Fatal编程技术网

Php 如何在WooCommerce管理订单列表上创建过滤器下拉列表?

Php 如何在WooCommerce管理订单列表上创建过滤器下拉列表?,php,wordpress,woocommerce,state,orders,Php,Wordpress,Woocommerce,State,Orders,我正在尝试在WooCommerce管理订单列表上创建一个发货状态过滤器下拉列表 首先,我已将装运状态的自定义列添加到管理员订单列表中: add_filter( 'manage_edit-shop_order_columns', 'custom_shipping_state_column', 100 ); function custom_shipping_state_column( $columns ){ $ordered_columns = array(); foreach( $columns

我正在尝试在WooCommerce管理订单列表上创建一个发货状态过滤器下拉列表

首先,我已将装运状态的自定义列添加到管理员订单列表中:

add_filter( 'manage_edit-shop_order_columns', 'custom_shipping_state_column', 100 );
function custom_shipping_state_column( $columns ){
$ordered_columns = array();

foreach( $columns as $key => $column ){
    $ordered_columns[$key] = $column;
    if( 'order_notes' == $key ){
        $ordered_columns['order_state'] = __( 'State/Province', 'woocommerce');
    }
}

return $ordered_columns;
}

 add_action( 'manage_shop_order_posts_custom_column' , 'shipping_state_order_list_column', 10, 1 );
 function shipping_state_order_list_column( $column )
 {
  global $post;

   if ( 'order_state' === $column ) {

      $order    = wc_get_order( $post->ID );
      echo $order->get_shipping_state();
    }

 }
add_filter( 'manage_edit-shop_order_columns', 'custom_shipping_state_column', 100 );
function custom_shipping_state_column( $columns ){
    $sorted_columns = array();

    foreach( $columns as $key => $column ){
        $sorted_columns[$key] = $column;
        if( 'order_notes' == $key ){
            $sorted_columns['order_state'] = __( 'State/Province', 'woocommerce');
        }
    }
    return $sorted_columns;
}

 add_action( 'manage_shop_order_posts_custom_column' , 'shipping_state_order_list_column', 10, 1 );
 function shipping_state_order_list_column( $column ) {
     global $post, $the_order;

     if ( 'order_state' === $column && $shipping_state = $the_order->get_shipping_state() ) {
          echo $shipping_state;
     }
}
这是我的下拉过滤器,用于装运状态:

add_action('restrict_manage_posts', 'filter_province');
    function filter_province(){
        global $typenow;
        global $wpdb;
        $table = $wpdb->prefix . 'woocommerce_shipping_zone_locations';
        $sql = 'SELECT location_code FROM `'. $table . '`'; 
        $location_state = array();
        $result = $wpdb->get_results($sql);
        $location_name = array(
            'ABR'=>'ABR:Abra',
            'AGN'=>'AGN:Agusan del Norte',
            'AGS'=>'AGS:Agusan del Sur',
            'AKL'=>'AKL:Aklan',
            'ALB'=>'ALB:Albay',
            'ANT'=>'ANT:Antique',
            'APA'=>'APA:Apayao',
            'AUR'=>'AUR:Aurora',
            'BAS'=>'BAS:Basilan',
            'BAN'=>'BAN:Bataan',
            'BTN'=>'BTN:Batanes',
            'BTG'=>'BTG:Batangas',
            'BEN'=>'BEN:Benguet',
            'BIL'=>'BIL:Bilaran',
            'BOH'=>'BOH:Bohol',
            'BUK'=>'BUK:Bukidnon',
            'BUL'=>'BUL:Bulacan',
            'CAG'=>'CAG:Cagayan',
            'CAN'=>'CAN:Camarines Norte',
            'CAS'=>'CAS:Camarines Sur',
            'CAM'=>'CAM:Camiguin',
            'CAP'=>'CAP:Capiz',
            'CAT'=>'CAT:Catanduanez',
            'CAV'=>'CAV:Cavite',
            'CEB'=>'CEB:Cebu',
            'COM'=>'COM:Compostela Valley',
            'NCO'=>'NCO:Cotobato',
            'DAV'=>'DAV:Davao del Norte',
            'DAS'=>'DAS:Davao del Sur',
            'DAC'=>'DAC:Davao Occidental',
            'DAO'=>'DAO:Davao Oriental',
            'DIN'=>'DIN:Dinangat Island',
            'EAS'=>'EAS:Eastern Samar',
            'GUI'=>'GUI:Guimaras',
            'IFU'=>'IFU:Ifugao',
            'ILN'=>'ILN:Ilocos Norte',
            'ILS'=>'ILS:Ilocos Sur',
            'ILI'=>'ILI:Iloilo',
            'ISA'=>'ISA:Isabela',
            'KAL'=>'KAL:Kalinga',
            'LUN'=>'LUN:La Union',
            'LAG'=>'LAG:Laguna',
            'LAN'=>'LAN:Lanao del Norte',
            'LAS'=>'LAS:Lanao del Sur',
            'LEY'=>'LEY:Leyte',
            'MAG'=>'MAG:Maguindanao',
            'MAD'=>'MAD:Marinduque',
            'MAS'=>'MAS:Masbate',
            'MSC'=>'MSC:Misamis Occidental',
            'MSR'=>'MSR:Misamis Oriental',
            'MOU'=>'MOU:Mountain Province',
            'NEC'=>'NEC:Negros Occidental',
            'NER'=>'NER:Negros Oriental',
            'NSA'=>'NSA:Nothern Samar',
            'NUE'=>'NUE:Nueva Ecija',
            'NUV'=>'NUV:Nueva Vizcaya',
            'MDC'=>'MDC:Occidental Mindoro',
            'MDR'=>'MDR:Oriental Mindoro',
            'PLW'=>'PLW:Palawan',
            'PAM'=>'PAM:Pampanga',
            'PAN'=>'PAN:Pangasinan',
            'QUE'=>'QUE:Quezon',
            'QUI'=>'QUI:Quirino',
            'RIZ'=>'RIZ:Rizal',
            'ROM'=>'ROM:Romblon',
            'WSA'=>'WSA:Samar',
            'SAR'=>'SAR:Sarangani',
            'SIQ'=>'SIQ:Siquijor',
            'SOR'=>'SOR:Sorsogon',
            'SCO'=>'SCO:South Cotobato',
            'SLE'=>'SLE:Southern Leyte',
            'SUK'=>'SUK:Sultan Kudarat',
            'SLU'=>'SLU:Sulu',
            'SUN'=>'SUN:Surigao del Norte',
            'SUR'=>'SUR:Surigao del Sur',
            'TAR'=>'TAR:Tarlac',
            'TAW'=>'TAW:Tawi-Tawi',
            'ZWB'=>'ZWB:Zambales',
            'ZAN'=>'ZAN:Zamboanga del Norte',
            'ZAS'=>'ZAS:Zamboanga del Sur',
            'ZSI'=>'ZSI:Zamboanga Sibugay',
            '00'=>'00:Metro Manila'
        );
        $getCount = count($location_name);
        $location = array_values($location_name);

        // if post type is shop_order
        if ($typenow=='shop_order') {
            //check if our select has been sent and if so, is it set to "Currently Due"
            if (isset($_GET["get_province"])){
                $get_province = $_GET["get_province"];
                $selected = $get_province;
            } else {
                $selected = "";
            }
            echo "<select id='get_province' name='get_province'>";
            echo "<option value='' ".selected("", $selected )." >".__( 'State/Province', 'woocommerce' )."</option>";
            foreach($result as $res) {
                $data = explode(':',$res->location_code);
                for($i=0;$i<$getCount;$i++){
                    $location_state = explode(':',$location[$i]);
                    if($location_state[0] == $data[1]){
                        echo    "<option value= ".$data[1]." ".selected($data[1], $selected ).">".$location_state[1]."</option>";
                    }
                }

            }
            echo "</select>";

        }

    }
add_action('restrict_manage_posts','filter_province');
函数筛选器_省(){
全球$typenow;
全球$wpdb;
$table=$wpdb->prefix.'woocommerce\u shipping\u zone\u locations';
$sql='从`.$table'.'中选择位置\代码''.';
$location_state=array();
$result=$wpdb->get_results($sql);
$location\u name=数组(
“ABR”=>“ABR:Abra”,
“AGN”=>“AGN:Agusan del Norte”,
'AGS'=>'AGS:Agusan del Sur',
‘AKL’=>‘AKL:Aklan’,
'ALB'=>'ALB:Albay',
“蚂蚁”=>“蚂蚁:古董”,
‘APA’=>‘APA:Apayao’,
“极光”=>“极光:极光”,
'BAS'=>'BAS:Basilan',
‘BAN’=>‘BAN:Bataan’,
'BTN'=>'BTN:Batanes',
'BTG'=>'BTG:Batangas',
“本”=>“本:本格”,
“比尔”=>“比尔:比拉兰”,
'波黑'=>'波黑:波黑',
‘BUK’=>‘BUK:Bukidnon’,
‘BUL’=>‘BUL:Bulacan’,
'CAG'=>'CAG:Cagayan',
“CAN”=>“CAN:Camarines Norte”,
“CAS”=>“CAS:Camarines Sur”,
'凸轮'=>'凸轮:凸轮',
'CAP'=>'CAP:Capiz',
“CAT”=>“CAT:Catanduanez”,
'CAV'=>'CAV:Cavite',
“行政首长协调会”=>“行政首长协调会:宿务”,
“COM”=>“COM:Compostela Valley”,
‘NCO’=>‘NCO:Cotobato’,
“DAV”=>“DAV:Davao del Norte”,
'DAS'=>'DAS:Davao del Sur',
‘DAC’=>‘DAC:Davao Occidental’,
“道”=>“道:达沃东方”,
‘丁’=>‘丁:迪南加特岛’,
'EAS'=>'east Samar',
'GUI'=>'GUI:Guimaras',
“IFU”=>“IFU:Ifugao”,
'ILN'=>'ILN:Ilocos Norte',
‘ILS’=>‘ILS:Ilocos Sur’,
'ILI'=>'ILI:Iloilo',
'ISA'=>'ISA:Isabela',
‘KAL’=>‘KAL:Kalinga’,
'LUN'=>'LUN:La Union',
'LAG'=>'LAG:Laguna',
“LAN”=>“LAN:lanaodel Norte”,
“LAS”=>“LAS:Lanao del Sur”,
“LEY”=>“LEY:Leyte”,
'MAG'=>'MAG:Maguindanao',
“MAD”=>“MAD:Marinduque”,
'MAS'=>'MAS:Masbate',
'MSC'=>'MSC:Misamis Occidental',
'MSR'=>'MSR:Misamis Oriental',
“MOU”=>“MOU:山地省”,
“NEC”=>“NEC:西方黑人”,
“内尔”=>“内尔:东方黑人”,
“NSA”=>“NSA:北撒马尔”,
'NUE'=>'NUE:Nueva Ecija',
'NUV'=>'NUV:Nueva Vizcaya',
“MDC”=>“MDC:Occidental Mindoro”,
“MDR”=>“MDR:东方民都洛”,
“PLW”=>“PLW:Palawan”,
“PAM”=>“PAM:Pampanga”,
“PAN”=>“PAN:Pangasinan”,
'QUE'=>'QUE:Quezon',
“QUI”=>“QUI:Quirino”,
'RIZ'=>'RIZ:Rizal',
“ROM”=>“ROM:Romblon”,
'WSA'=>'WSA:Samar',
“SAR”=>“SAR:Sarangani”,
‘SIQ’=>‘SIQ:Siquijor’,
‘SOR’=>‘SOR:Sorsogon’,
‘上海合作组织’=>‘上海合作组织:南哥托巴岛’,
'SLE'=>'SLE:Southern Leyte',
“苏克”=>“苏克:苏丹库达拉特”,
‘SLU’=>‘SLU:Sulu’,
“SUN”=>“SUN:Surigao del Norte”,
'SUR'=>'SUR:Surigao del SUR',
'TAR'=>'TAR:Tarlac',
‘TAW’=>‘TAW:Tawi-Tawi’,
‘ZWB’=>‘ZWB:Zambales’,
“赞”=>“赞:北方三宝颜”,
'ZAS'=>'ZAS:Zaboanga del Sur',
'ZSI'=>'ZSI:Zamboanga Sibugay',
'00'=>'00:马尼拉大都市'
);
$getCount=count($location\u name);
$location=array\u值($location\u name);
//如果邮政类型为车间订单
如果($typenow=='shop\u order'){
//检查我们的选择是否已发送,如果已发送,是否设置为“当前到期”
如果(isset($\u GET[“GET\u province”])){
$get\U PROVICE=$\U get[“get\U PROVICE”];
$selected=$get_省;
}否则{
$selected=“”;
}
回声“;
echo.“u uuu('State/Province','woocommerce');
foreach(结果为$res){
$data=explode(“:”,$res->location\u code);

对于($i=0;$i),您的代码中存在一些错误、复杂性和遗漏

以下内容将根据管理订单列表上的装运状态位置(基于允许的装运设置国家/地区)显示功能下拉过滤器:

代码放在活动子主题(或活动主题)的functions.php文件中。已测试并运行


相关答案:

这是否回答了您的问题?您好,我使用了该代码,但它不起作用。我不知道为什么,但您可以解释一下,一旦我选择了状态并提交到过滤器按钮,如何处理。您好,非常感谢,现在它工作得非常好。请阅读您的代码并precisely@AlexanderDeMesa提醒:当您使用existin中的某些代码时g答案线索,如果有用,请尝试回答。如果你根据现有答案代码提问,请始终添加参考(链接)对于你的问题。如果有人用一个很好的工作答案回答了你的一个问题,不要忘记接受它,甚至对它进行投票。@AlexanderDeMesa我刚刚更新了我的代码,我在调试中使用了一些自定义项,我已经删除了:
print\u pr($country\u state);
…因此也将其删除,因为这将引发错误。Hello@LoicTheAztec感谢您提供的信息,很抱歉这是我第一次在stackoverflow上发布。好的,我将按照您的建议:)
add_filter( 'manage_edit-shop_order_columns', 'custom_shipping_state_column', 100 );
function custom_shipping_state_column( $columns ){
    $sorted_columns = array();

    foreach( $columns as $key => $column ){
        $sorted_columns[$key] = $column;
        if( 'order_notes' == $key ){
            $sorted_columns['order_state'] = __( 'State/Province', 'woocommerce');
        }
    }
    return $sorted_columns;
}

 add_action( 'manage_shop_order_posts_custom_column' , 'shipping_state_order_list_column', 10, 1 );
 function shipping_state_order_list_column( $column ) {
     global $post, $the_order;

     if ( 'order_state' === $column && $shipping_state = $the_order->get_shipping_state() ) {
          echo $shipping_state;
     }
}