View Categories

Ascunderea AWB-ului pentru comenzile cu ridicare din showroom

1 min read

Acest cod verifică dacă o comandă WooCommerce este setată pentru ridicare din showroom. Dacă da, în loc să afișeze numărul AWB (de la Cargus sau Fan Courier), afișează un mesaj simplu: „Comanda cu ridicare din showroom.” Dacă livrarea se face prin curier, afișează în continuare AWB-ul normal.

add_action( 'manage_shop_order_posts_custom_column', 'conditional_blank_awb_content', 5, 2 );
add_action( 'manage_woocommerce_page_wc-orders_custom_column', 'conditional_blank_awb_content', 5, 2 );

function conditional_blank_awb_content( $column_name, $order_id ) {
    $target_columns = array( 'cargus_AWB', 'fancourier_AWB' );
    if ( ! in_array( $column_name, $target_columns, true ) ) {
        return;
    }

    $order = wc_get_order( $order_id );
    if ( ! $order ) {
        return;
    }

    $is_local_pickup = false;
    $shipping_methods = $order->get_shipping_methods();
    if ( ! empty( $shipping_methods ) ) {
        foreach ( $shipping_methods as $shipping_item ) {
            if ( strpos( $shipping_item->get_method_id(), 'local_pickup' ) === 0 ) {
                $is_local_pickup = true;
                break;
            }
        }
    }

	$screen_id = curiero_get_shop_order_screen_id();
	$selected_shipping_method = CurieRO()->printing_methods->get_active()[strtok($column_name, '_')] ?? null;
	if ( !$selected_shipping_method ) {
		return;
	}

	$hook = CurieRO()->woocommerce_hpos_enabled ? "manage_{$screen_id}_custom_column" : "manage_{$screen_id}_posts_custom_column";
	$callable = [$selected_shipping_method, 'get_custom_columns_values'];
	$has_action = has_action($hook, $callable, 6);

    if ( $is_local_pickup ) {
		if ($has_action) {
			remove_action($hook, $callable, 6);
		}

		echo '<p>Comanda cu ridicare din showroom.</p>';
    } else {
		if (!$has_action) {
			add_action($hook, $callable, 6, 2);
		}
	}
}