Dobry den @morvy,
omlouvám se za prodlevu v odpovědi.
Dle vyjád?ení programátora k této chybě dochází kv?li tomu, ?e v tabulce woocommerce_order_items jsou ve sloupci order_item_name ulo?eny názvy p?epravních metod (shipping rate) nastavené v “Nastavení dopravc?” (nastavení na?eho pluginu), tedy nap?íklad “CZ Zásilkovna vydejní místa”.
V proměnné $method se ale nachází název shipping method (nap?íklad string z%c3%a1silkovna) .
K problému tedy dochází poka?dé, kdy? je shipping rate s jinym názvem ne? má shipping method.
?e?ením by mělo byt na?ítat pou?ité názvy skrze:
SELECT DISTINCT order_item_name
FROM wp_woocommerce_order_items
WHERE order_item_type
= ‘shipping’.
Nap?íklad by tedy custom filtr po zapracování těchto úpravy mohl vypadat takto:
function display_shipping_dropdown() {
if ( ! empty( $_GET['post_type'] ) && is_admin() && sanitize_title( $_GET['post_type'] ) === 'shop_order' ) {
global $wpdb;
// p?ípadně nějak se?adit
$exp_types = $wpdb->get_results( 'SELECT DISTINCT
order_item_name
FROM wp_woocommerce_order_items
WHERE order_item_type
= "shipping"', ARRAY_A );
?>
<select name="shipping_method">
<option value=""><?php _e( 'Filtrova? pod?a dopravy', 'woocommerce' ); ?></option>
<?php
$current_v = ! empty( $_GET['shipping_method'] ) ? $_GET['shipping_method'] : '';
foreach ( $exp_types as $row ) {
$label = $row['order_item_name'];
printf
(
'<option value="%s"%s>%s</option>',
$label,
$label === $current_v ? ' selected="selected"' : '',
$label
);
}
?>
</select>
<?php
}
}
add_action( 'restrict_manage_posts', 'display_shipping_dropdown' );
function admin_shipping_filter( $where, $wp_query ) {
global $pagenow;
global $wpdb;
$method = ! empty( $_GET['shipping_method'] ) ? esc_sql( $_GET['shipping_method'] ) : false;
if ( $pagenow === 'edit.php' && $wp_query->query_vars['post_type'] === 'shop_order' && ! empty( $method ) && is_admin() ) {
$where .= ' AND wp_posts.ID IN (
SELECT order_id FROM ' . $wpdb->prefix . 'woocommerce_order_items
WHERE order_item_type = "shipping" AND order_item_name LIKE "' . $method . '%"
) ';
}
return $where;
}
add_filter( 'posts_where', 'admin_shipping_filter', 10, 2 );
S pozdravem,
Matyá? Kova? – Zásilkovna E-Commerce Support