V případě, že je pro vás důležitá celková váha objednávky, bude se vám hodit dnešní tip. Pomocí tří funkcí nejprve uložíme celkovou váhu objednávky, přidáme do výpisu objednávek nový sloupec s váhou a nakonec přidáme funkci, která ji zobrazí.
Výsledek, kterého chceme dosáhnout je:
Do souboru functions.php, nebo analogicky do vašeho pluginu přidejte kód pro uložení post_meta. To se uloží při vytvoření nové objednávky.
add_action('woocommerce_checkout_update_order_meta', 'woo_add_cart_weight');
function woo_add_cart_weight( $order_id ) {
global $woocommerce;
$weight = $woocommerce->cart->cart_contents_weight;
update_post_meta( $order_id, '_cart_weight', $weight );
}
Tím získáme celkovou váhu objednávky, kterou pak zobrazíme pomocí následujícího kódu
add_filter( 'manage_edit-shop_order_columns', 'woo_order_weight_column', 20 );
function woo_order_weight_column( $columns ) {
$offset = 8;
$updated_columns = array_slice( $columns, 0, $offset, true) +
array( 'total_weight' => esc_html__( 'Weight', 'woocommerce' ) ) +
array_slice($columns, $offset, NULL, true);
return $updated_columns;
}
add_action( 'manage_shop_order_posts_custom_column', 'woo_custom_order_weight_column', 2 );
function woo_custom_order_weight_column( $column ) {
global $post;
if ( $column == 'total_weight' ) {
$weight = get_post_meta( $post->ID, '_cart_weight', true );
if ( $weight > 0 )
print $weight . ' ' . esc_attr( get_option('woocommerce_weight_unit' ) );
else print 'N/A';
}
}
Další užitečné snippety najdete na stránce Užitečné snippety pro WooCommerce