Admin filter for product SKU?

时间:2017-12-08 作者:Kiril Climson

如何根据产品的SKU代码筛选产品?

orders中创建了一个新列,但我很难理解如何搜索它。

我有一个填充了产品SKU的列。如何根据该信息返回搜索结果?

    // Add Column
    add_filter( \'manage_edit-shop_order_columns\', \'custom_shop_order_column\',11);
    function custom_shop_order_column($columns)
    {
        //add columns
        $columns[\'SKU\'] = __( \'SKU\');
        return $columns;
    }

    // Add Column Data
    add_action( \'manage_shop_order_posts_custom_column\' , \'custom_orders_list_column_content\', 10, 2 );
    function custom_orders_list_column_content( $column, $post_id )
    {
        switch ( $column )
        {
            case \'SKU\' :
                $order = wc_get_order( $post_id );
                $order_item = $order->get_items();

                foreach ( $order_item as $item_id ) {

                    $product_id = $item_id[\'product_id\']; 

                    $myVarOne = get_post_meta($product_id, \'_sku\', true);

                    echo $myVarOne;
                    break;
        }
    }
    }

    // Failed search functionality
    add_filter( \'woocommerce_shop_order_search_fields\', \'woocommerce_shop_order_search_SKU\' );
    function woocommerce_shop_order_search_SKU( $search_fields ) {
        $search_fields[] = \'_sku\';
        return $search_fields;
    }

1 个回复
SO网友:Kiril Climson

我使用了一个插件“WooCommerce按产品过滤订单”,并修改了他们的ID搜索,添加了一个get\\u post\\u meta(),现在可以按ID过滤产品。

插件:https://en-ca.wordpress.org/plugins/woocommerce-filter-orders-by-product/

修改代码:

    // Display dropdown
    function foa_product_filter_in_order(){
        global $typenow, $wpdb;

        if ( \'shop_order\' != $typenow ) {
            return;
        }

        $sql="SELECT ID,post_title FROM $wpdb->posts WHERE post_type = \'product\' AND post_status = \'publish\'";
        $all_posts = $wpdb->get_results($sql, ARRAY_A);

        $values = array();

        foreach ($all_posts as $all_post) {
            $values[$all_post[\'ID\']] = get_post_meta($all_post[\'ID\'], \'_sku\', true);
        }



        ?>
        <select name="foa_order_product_filter">
        <option value=""><?php _e(\'All products\', \'foa\'); ?></option>
        <?php
            $current_v = isset($_GET[\'foa_order_product_filter\'])? $_GET[\'foa_order_product_filter\']:\'\';
            foreach ($values as $label) {
                printf
                    (
                        \'<option value="%s"%s>%s</option>\',
                        $value,
                        $value == $current_v? \' selected="selected"\':\'\',
                        $label
                    );
                }
        ?>
        </select>
        <?php
    }

结束

相关推荐

当返回值为空时,Apply_Filters为什么要返回非空字符串?

因为这个把我的键盘弄坏了。进行了正确的安装,将数据库上载到新的MySQL,并一直在正确使用子主题。但有件事困扰着我,我想不出来。在我的新安装上(ver2.whowhatwhy.com) 我故意将一些小部件留空。我想,当阅读default-widgets.php wp中的文件包括在该小部件上不会显示标题元素。相反,显示标题小部件是因为,出于某种原因,传递的值apply_filters 是一个空格,而不是空白值$instance[\'title\'] 为空。$title = apply_filters( \'