Diferenciación de Woocommerce Cantidad Valor por categoría

En Woocommerce, comprobé la cantidad mínima de mis productos y los pasos crecientes con el código siguiente. Ahora he decidido trabajar con diferentes categorías de productos, y este código que apliqué a todo el sitio no es adecuado para nuevos productos. ¿Cómo puedo diferenciar los valores por categoría?

    add_filter( 'woocommerce_quantity_input_args', 'jk_woocommerce_quantity_input_args', 10, 2 );

function jk_woocommerce_quantity_input_args( $args, $product ) {
    if ( is_singular( 'product' ) ) {
        $args['input_value']    = 100;  // Starting value (we only want to affect product pages, not cart)
    }
    $args['max_value']  = 10000;    // Maximum value
    $args['min_value']  = 100;      // Minimum value
    $args['step']       = 50;    // Quantity steps
    return $args;
}

// Variations
add_filter( 'woocommerce_available_variation', 'jk_woocommerce_available_variation' );

function jk_woocommerce_available_variation( $args ) {
    $args['max_qty'] = 10000;       // Maximum value (variations)
    $args['min_qty'] = 100;     // Minimum value (variations)
    return $args;
}

Pregunta hecha hace 3 años, 5 meses, 2 días - Por debugduke


2 Respuestas:

  • Para diferenciar los valores por categoría en WooCommerce, puedes modificar tu código para que verifique la categoría del producto y aplique diferentes valores según la categoría. Aquí te muestro cómo puedes hacerlo:

    • Primero, necesitas obtener la categoría del producto actual. Puedes hacerlo con la función `get_the_terms()` de WordPress.
    • Luego, dentro de tu función `jk_woocommerce_quantity_input_args()`, puedes verificar la categoría del producto y establecer los valores correspondientes. Aquí tienes un ejemplo de cómo modificar tu código:
    php
    add_filter( 'woocommerce_quantity_input_args', 'jk_woocommerce_quantity_input_args', 10, 2 );
    
    function jk_woocommerce_quantity_input_args( $args, $product ) {
        $categories = get_the_terms( $product->get_id(), 'product_cat' ); // Obtener categorías del producto
    
        foreach ($categories as $category) { // Iterar sobre las categorías
            if ( $category->slug == 'tu_categoria_especifica' ) { // Reemplaza 'tu_categoria_especifica' con la categoría que quieres ajustar
                $args['input_value'] = 50; // Valor inicial para esa categoría
                $args['max_value'] = 5000; // Valor máximo para esa categoría
                $args['min_value'] = 50; // Valor mínimo para esa categoría
                $args['step'] = 25; // Pasos de cantidad para esa categoría
            }
        }
    
        return $args;
    }
    

    En este ejemplo, estamos verificando si el producto pertenece a una categoría específica (reemplaza 'tucategoriaespecifica' con la slug de la categoría que deseas ajustar). Si el producto está en esa categoría, se establecen valores personalizados para esa categoría.

    Recuerda modificar las categorías y los valores según tus necesidades y la estructura de tu sitio. ¡Espero que este cambio te ayude a diferenciar los valores por categoría en tus productos de WooCommerce!

    Respondida el Dec 19, 2020 a las 15:26 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para diferenciar los valores de cantidad mínima, pasos crecientes y valores máximos por categoría en Woocommerce, puedes utilizar el siguiente código:

    php
    function woocommerce_quantity_input_args_by_category( $args, $product ) {
        $category_ids = wp_get_post_categories( $product->get_id() );
        $category = get_category( $category_ids[0] ); // Assuming you only want to use the first category
    
        switch ( $category->slug ) {
            case 'category-slug-1':
                $args['input_value'] = 10;
                $args['max_value'] = 100;
                $args['min_value'] = 10;
                $args['step'] = 10;
                break;
            case 'category-slug-2':
                $args['input_value'] = 20;
                $args['max_value'] = 200;
                $args['min_value'] = 20;
                $args['step'] = 20;
                break;
            default:
                // Default values
                $args['input_value'] = 100;
                $args['max_value'] = 10000;
                $args['min_value'] = 100;
                $args['step'] = 50;
                break;
        }
    
        return $args;
    }
    
    add_filter( 'woocommerce_quantity_input_args', 'woocommerce_quantity_input_args_by_category', 10, 2 );
    

    Nota: Aquí asumimos que solo estás utilizando una categoría por producto. Si no es el caso, puedes modificar el código para obtener todas las categorías asignadas al producto y establecer los valores de cantidad en consecuencia.

    Respondida el Dec 19, 2020 a las 15:36 - por Gemini

    Votos positivos: 0 | Votos negativos: 0