Soporte » WordPress Avanzado » Obtener valor de un selector, Producto Woocomerce

  • Buenas tardes,
    Tengo un producto definido con sus características, pero necesitaba una característica más (delivery | take away) así que instalé un pluggin para ello y me lo permite con un selector.
    Bien, ahora lo que quiero es no mostrar en la página final de «checkout» el formulario de datos si el selector está marcado en «take away» y por lo contrario mostrarlo si se marca delivery, ya que si es take away no es necesario introducir datos.

    Sé como se deshabilitan las funciones del formulario, pero necesitaría un condicional que me las deshabilite si está marcada una opción u otra y para ello tengo que saber el nombre de la variable donde guarda el dato seleccionado el «select».

    Si os sirve de ayuda el nombre que le he puesto a ese select es «selecionatakeaway», pero he probado ya con esa variable y no es.

    Si alguien sabe algún modo sería de gran ayuda, muchas gracias de antemano!
    Saludos.

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • Hola @adnansuara

    Creo que te entiendo pero necesitamos saber más.

    Comentas que has instalado un plugin, ¿Qué plugin es?

    Por otro lado, para todo esto que estás usando? WooCommerce?

    Si puedes, danos más datos y si puedes también la url de la web donde se vea este asunto, ok?

    Saludos y ánimo!

    Iniciador del debate adnansuara

    (@adnansuara)

    Si estoy utilizando WooCommerce, al final no necesito el pluggin, ya que puedo hacer lo mismo con los atributos de producto del propio WooCommerce.

    Pero sigo teniendo el mismo problema, quiero sacar el dato que contiene un atributo, en este caso el de «modo» que puede contener dos valores «delivery» o «take away».
    He probado con algunas funciones que ofrece el propio WooCommerce pero sigo sin lograrlo.

    Mi idea es sacar ese dato para poder compararlo, en la página de checkout y si contiene un valor mostrar unos campos, sino mostrar otros.

    Dejo aquí una idea de lo que quiero hacer y el link,

    $modo->get_attribute( 'modo' );
    if($modo=="TakeAway"){
    	unset($fields['billing']['billing_address_1']);
    }

    http://takepaella.com.ws4.cctech.sk/finalizar-compra/

    Muchas gracias por la rápida respuesta, seguiré intentando cositas
    Saludos

    He mirado en la web que comentas pero no veo que recojas ese campo en ningún lado o es que compruebas si han seleccionado fecha?

    En cualquier caso, lo que hay que averiguar y comprobar el contenido de ese campo y que suelte por echo algun valor para poder compararlo con lo que tienes en mente.

    Es que, sin trastear con ello…

    Mira a ver si puedes hacer esas comprobaciones y estar seguro del campo..

    También puedes probar otra cosa dentro del if, es decir, poner un echo para ver si el echo pinta el texto y así estar seguro de si entra o no en el if.

    Venga, ya me cuentas…

    Ánimo!!

    Iniciador del debate adnansuara

    (@adnansuara)

    Si eso es, estoy intentando coger el valor del «Modo» y los ifs y demás los he comprobado y si funcionan bien. El tema está he probado con otras funciones a ver si me lo saca, por ejemplo el nombre, el tipo, etc y si los coge. getName(), getType(); pero lo que quiero es coger el dato del Atributo.

    Sé que se podrá hacer porque es exactamente lo que hace Woocomerce automáticamente con cualquier atributo que añades lo muestra en la página final de Checkout. Pero tengo que averiguar como lo saca, he probado de todo ya…

    Lo del if demomento es secundario ya que he probado otras cosas con esa estructura y si me va bien.

    He probado por ejemplo con este código;

    add_filter( 'woocommerce_cart_item_name', 'cart_variation_description', 20, 3);
    function cart_variation_description( $title, $cart_item, $cart_item_key ) {
        $item = $cart_item['data'];
    
        if(!empty($item) && $item->is_type( 'variation' ) ) {
            return $item->get_name();
        } else
            return $title;
    }

    y con ello consigo hacer pruebas debajo del nombre, mostrando el nombre en este caso o lo que le pongas en el return, pero no consigo sacar la función que extraiga el atributo.
    No sé si me explico, si alguien tiene alguna idea sería de gran ayuda.
    Muchas gracias de antemano, por contestar!.
    Saludos

    Espera…

    Por el código que veo, tu lo quieres pillar desde el carrito, verdad?

    Si es así, tendrías que recorrer cada item del carrito y dentro de cada item, pillar la variación de producto.

    Yo, en estos casos en los que no se muy bien de dónde pillar la info, voy plantando «var_dump()» hasta que doy con la clave y descubro como están estructurados los datos.

    No se si esto te ayuda un poco.

    Saludos.

    Iniciador del debate adnansuara

    (@adnansuara)

    Sisi eso es, yo quiero pillar el dato que ya está en el carrito y con ese dato ya podría comprobar. Pero es lo que no obtengo.

    «var_dump()» me suena de haberlo visto en alguna de las pruebas, voy a probar a ver que puedo sacar con ello.

    Muchas gracias!!! saludos.

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