es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mostrar toda la información de variación de WooCommerce en la página del producto.

Si bien esto funciona bien tal como está, necesito ayuda para hacer que muestre todos los detalles de variación diferentes disponibles.

Hasta ahora, muestra el precio. Esta es la lista completa de variables disponibles:

‘attributes’
‘availability_html’
‘backorders_allowed’
‘dimensions’
‘dimensions_html’
‘display_price’
‘display_regular_price’
‘price’
‘image’
‘image_id’
‘is_downloadable’
‘is_in_stock’
‘is_purchasable’
‘is_sold_individually’
‘is_virtual’
‘max_qty’
‘min_qty’
‘price_html’
‘sku’
‘variation_description’
‘variation_id’
‘variation_is_active’
‘variation_is_visible’
‘weight’
‘weight_html’

Este es el código que necesito ayuda para cambiar para mostrar todos estos como una tabla, si es posible.

add_action( ‘woocommerce_after_add_to_cart_form’, ‘display_variation_info_in_product_summary’ );
function display_variation_info_in_product_summary() {

global $product;

        if ( ! $product->is_type( 'variable' ) ) return;

                echo '<div class="var_info"></div>';
                   wc_enqueue_js( "
                      $(document).on('found_variation', 'form.cart', function( event, variation ) {
                         $('.var_info').html(variation.price_html); // aquí se deben mostrar todas las opciones
                  });
           " );

}

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Mostrando todos los detalles de variación disponibles en una tabla

    Para mostrar todos los detalles de variación disponibles en una tabla, necesitamos modificar el código existente.

    Primero, crearemos un array con todos los detalles de variación disponibles:

    $variables = array(
        'attributes',
        'availability_html',
        'backorders_allowed',
        'dimensions',
        'dimensions_html',
        'display_price',
        'display_regular_price',
        'price',
        'image',
        'image_id',
        'is_downloadable',
        'is_in_stock',
        'is_purchasable',
        'is_sold_individually',
        'is_virtual',
        'max_qty',
        'min_qty',
        'price_html',
        'sku',
        'variation_description',
        'variation_id',
        'variation_is_active',
        'variation_is_visible',
        'weight',
        'weight_html'
    );
    

    Luego, recorreremos el array y crearemos una tabla con los detalles de variación como encabezados de tabla:

    add_action( 'woocommerce_after_add_to_cart_form', 'display_variation_info_in_product_summary' );
    function display_variation_info_in_product_summary() {
    
       global $product;
    
        if ( ! $product->is_type( 'variable' ) ) return;
    
        // Crear el array de variables
        $variables = array(
            'attributes',
            'availability_html',
            'backorders_allowed',
            'dimensions',
            'dimensions_html',
            'display_price',
            'display_regular_price',
            'price',
            'image',
            'image_id',
            'is_downloadable',
            'is_in_stock',
            'is_purchasable',
            'is_sold_individually',
            'is_virtual',
            'max_qty',
            'min_qty',
            'price_html',
            'sku',
            'variation_description',
            'variation_id',
            'variation_is_active',
            'variation_is_visible',
            'weight',
            'weight_html'
        );
    
        // Iniciar la tabla
        echo '<table class="var_info">';
        echo '<thead><tr><th>Detalle de Variación</th><th>Valor</th></tr></thead>';
        echo '<tbody>';
    
        // Recorrer las variables y mostrar los valores
        foreach ( $variables as $variable ) {
            $value = $product->get_variation_attribute( $variable );
            echo '<tr><td>' . $variable . '</td><td>' . $value . '</td></tr>';
        }
    
        // Cerrar la tabla
        echo '</tbody></table>';
    
        // Agregar JavaScript en cola
        wc_enqueue_js( "
            $(document).on('found_variation', 'form.cart', function( event, variation ) {
                $('.var_info').replaceWith(variation.variation_description);
            });
        " );
    }
    

    Comenzamos abriendo una tabla y creando encabezados para las columnas de la tabla. Luego, recorremos el array de variables y mostramos los valores en las filas de la tabla. Finalmente, cerramos la tabla.

    También reemplazamos el JavaScript existente con un nuevo script que reemplaza toda la tabla con el valor de variation_description cuando se encuentra una nueva variación.

    Con estos cambios, los detalles de variación se mostrarán ahora en una tabla con todas las variables disponibles.

Comments are closed.