Obtenga fechas de venta para las variaciones de un producto variable de WooCommerce

2 minutos de lectura

avatar de usuario de meisam
meisam

¿Hay alguna manera de conseguir on_sale_from y on_sale_to fechas para productos variables de WooCommerce en una matriz usando PHP?

Los cuadros rojos resaltados en esta captura de pantalla:

las partes rojas en esta imagen

  • Intenta ser más explícito… ¿Qué quieres hacer con eso? ¿Dónde vas a usar eso? Así que edite su pregunta para hacer esas aclaraciones, por favor.

    – LoicTheAztec

    6 de agosto de 2020 a las 9:03


  • Quiero usarlos en una función para crear un temporizador de cuenta regresiva. todo lo que necesito es obtener esas fechas … para productos simples es fácil obtenerlos … pero para productos variables devuelven un valor nulo

    – meisam

    6 de agosto de 2020 a las 9:09

  • El problema es que en un producto viable, hay múltiples variaciones de productos, por lo que puede tener múltiples fechas de inicio de venta y de finalización de venta… ¿cómo va a manejar eso?

    – LoicTheAztec

    6 de agosto de 2020 a las 9:19


  • imaginemos que todos tienen la misma fecha de inicio y finalización. ¿Hay alguna manera de obtener esas fechas?

    – meisam

    6 de agosto de 2020 a las 9:27

  • Recorrí las variaciones. Puedo acceder a todos los datos sobre esas variaciones, incluidos: ancho, alto, precio de venta, precio regular, pero aún no puedo alcanzar esas fechas

    – meisam

    6 de agosto de 2020 a las 9:36

Use lo siguiente para obtener las variaciones on_sale_from y on_sale_to fechas para un producto variable:

$sale_dates = array(); // Initializing

if( $product->is_type('variable') ) {
    $variation_ids = $product->get_visible_children();
    foreach( $variation_ids as $variation_id ) {
        $variation = wc_get_product( $variation_id );

        if ( $variation->is_on_sale() ) {
            $date_on_sale_from = $variation->get_date_on_sale_from();
            $date_on_sale_to   = $variation->get_date_on_sale_to();
            
            if( ! empty($date_on_sale_from) || ! empty($date_on_sale_to) ) {
                $sale_dates[$variation_id] = array(
                    'from' => $date_on_sale_from,
                    'to'   => $date_on_sale_to,
                );
            }
        }
    }
    
    // Array row output
    print_r($sale_dates);
}

¿Ha sido útil esta solución?