Lo que necesitas se puede lograr añadiendo un pequeño script en tu sitio de WordPress (si estás usando WooCommerce). Básicamente, el script detectará cuando el usuario seleccione «ENVÍO A PROVINCIA» y automáticamente ocultará la opción de «PAGO CONTRAENTREGA» en la sección de métodos de pago.
Te dejo un ejemplo básico en JavaScript/jQuery para orientarte:
jQuery(document).ready(function($) {
function togglePaymentMethod() {
var shippingMethod = $('input[name^="shipping_method"]:checked').val();
if (shippingMethod && shippingMethod.includes('envio_provincia')) {
$('#payment_method_cod').closest('li.wc_payment_method').hide(); // Oculta Contraentrega
} else {
$('#payment_method_cod').closest('li.wc_payment_method').show(); // Muestra Contraentrega
}
}
togglePaymentMethod(); // Ejecuta al cargar
$(document.body).on('change', 'input[name^="shipping_method"]', function() {
togglePaymentMethod(); // Ejecuta al cambiar método de envío
});
});
Puedes añadirlo en el archivo functions.php de tu tema usando wp_add_inline_script() o directamente en un archivo JS si tu tema lo permite. También puedes usar un plugin como Code Snippets si no quieres tocar código del tema.
Yo tuve el mismo problema en la página de un cliente de te (https://www.mejor-te.com/) y me costo solucionarlo, así que espero que te ayude.
Ya me comentas!