Eliminar provincias a las que no deseamos mandar productos en Woocommerce

Club para webmasters Foros Desarrollo web Eliminar provincias a las que no deseamos mandar productos en Woocommerce

Viendo 3 entradas - de la 1 a la 3 (de un total de 3)
  • Autor
    Entradas
  • #15575 Karma: 2
    Usuario-Chorri
    Participante
    94
    ChorriPuntos 36
    Nuevo

    Muy buenos días, amigos chorris.

    Ayer en el grupo de Telegram Elexonic hizo esta pregunta y yo le propuse una respuesta que aplicó con éxito y a Luis Y. también le sirvió. JoyAnimal me sugirió que lo pusiera aquí en el foro y como a los chorris de bien hay que hacerles caso, procedo a ello. Comentar que la solución que pongo aquí es algo más limpia y menos invasiva que la que sugerí en Telegram así que les daré un toque para que lo revisen.

    Lo primero que vamos a hacer es ir a la ruta subrayada en rojo en la captura de pantalla que os pongo y encontrar el archivo states.php. Aquí vamos a quedarnos con la copla del código de país (En nuestro caso España) y las provincias a las que sale carísimo mandar algo y queremos discriminar (sorry por los chorris canarios y mallorquines 🙁 ). Para el código de país utilizaremos ‘ES’; dentro del país, para apuntar a Baleares ‘PM’ y a Tenerife ‘TF’.

    Localización de los códigos de provincia en states.php

    A continuación, vamos a irnos a nuestro archivo functions.php de nuestro tema y vamos a aplicar esta función:

    add_filter( 'woocommerce_states', function( $states ){
        // Quitamos Tenerife
        unset( $states['ES']['TF'] );
    	// Quitamos Baleares
        unset( $states['ES']['PM'] );
        return $states;
    });

    Lo que estamos haciendo es basicamente acceder a la variable que carga los estados (en nuestro caso las provincias) según el código de país en Woocommerce, y allí eliminar los elementos del array según su código de estado (en nuestro caso provincia), mediante la función unset de php para eliminar elementos de un array.

    Quedando así el resultado:
    Añadiendo filtro a functions.php de nuestro tema

    Como podéis ver, al hacer click en el menú dropdown ya no aparecen las provincias que hemos eliminado del array.

    Visualización del dropdown menu tras aplicar el filtro.Ya no sale Baleares

    Haciéndolo de esta manera, con un filtro desde functions.php (y no como sugerí ayer en Telegram, borrando o comentando las líneas del Array) yo espero que no se sobrescriba cuando actualicemos nuestro tema y siga activo. Sin embargo tengo entendido que para garantizar que no se borre cuando se actualice el tema, podemos crear un tema hijo y en su archivo functions.php añadir este código.

    Nada más amigos chorris, espero que os sea útil. Un saludo!

    #15576 Karma: 0
    Antxon
    Participante
    1
    ChorriPuntos 833
    ChorriSEO aprendiz

    JOYANIMAL por aquí!!! Genial explicado!!! Mil gracias.

    Hasta un novato como yo, con temor a cualquier cosa de código, me atreveré a tocarlo algún día!!

    Mis ++++ jejeje

    SEOsalseANDO en https://ipet.es y otros menesteres

    #15577 Karma: 0
    Elexonic
    Participante
    5
    ChorriPuntos 615
    Pionero
    ChorriHelper

    Que crack! Muchas gracias
    No entiendo como aun no tienen esto integrado en woocomerce de serie

Viendo 3 entradas - de la 1 a la 3 (de un total de 3)
  • Debes estar registrado para responder a este debate.