add_filter(
'woocommerce_get_return_url',
function ( $return_url, $order ) {
if ( ! $order instanceof WC_Order ) {
return $return_url;
}
if ( ! $order->has_status( array( 'processing', 'completed', 'on-hold' ) ) ) {
return $return_url;
}
$redirect_url = home_url( '/account/edit-account/' );
$target_slug = 'post_package';
$match = false;
foreach ( $order->get_items() as $item ) {
$product = $item->get_product();
if ( ! $product ) {
continue;
}
if ( $product->get_type() === $target_slug ) {
$match = true;
break;
}
}
return $match ? $redirect_url : $return_url;
},
10,
2
);