• I need to allow order when product is out of stock and read the quantity in stock. If i set allow backorder the following code with [max_qty] is always 0 and not works:

    if ($product->product_type == ‘variable’) {
    foreach ($product->get_available_variations() as $key) {
    $attr_string = ”;
    foreach ( $key[‘attributes’] as $attr_name => $attr_value) {
    $attr_string[] = $attr_value;
    }
    if ( $key[‘max_qty’] > 0 ) { echo ‘<style> body span.swatch.swatch-label.swatch-‘ . implode(‘, ‘, $attr_string) . ‘ {opacity:1!important; background: #484848!important; color: #fff!important;}</style>’; } else { }
    }
    }

Viewing 1 replies (of 1 total)
  • Thread Starter gemedj89

    (@gemedj89)

    Solved :

    if ($product->is_type( ‘variable’ )){

    // Get the available variations for the variable product
    $available_variations = $product->get_available_variations();

    // Initializing variables
    $variations_count = count($available_variations);
    $loop_count = 0;

    // Iterating through each available product variation
    foreach( $available_variations as $key => $values ) {
    $loop_count++;
    // Get the term color name
    $attribute_color = $values[‘attributes’][‘attribute_pa_size’];
    $wp_term = get_term_by( ‘slug’, $attribute_color, ‘pa_size’ );
    $term_name = $wp_term->name; // Color name

    // Get the variation quantity
    $variation_obj = wc_get_product( $values[‘variation_id’] );
    $stock_qty = $variation_obj->get_stock_quantity(); // Stock qty

    // The display
    $separator_string = ” // “;
    $separator = $variations_count < $loop_count ? $separator_string : ”;

    // echo $term_name . ‘ = ‘ . $stock_qty . $separator . ‘<br>’;

    if ( $stock_qty > 0 ) { echo ‘<style> body span.swatch.swatch-label.swatch-‘ . $term_name. ‘{opacity:1!important; background: #484848!important; color: #fff!important;}</style>’ ;} else { }
    }

    }

Viewing 1 replies (of 1 total)
  • The topic ‘Woocommerce : [max_qty] not work using backorder’ is closed to new replies.