No tengo instalado WooCommerce, por lo que probablemente debería esperar y aceptar una respuesta que realmente proporcione un código ejecutable. Sin embargo, para darle una idea de lo que necesitará (y darle la oportunidad de mostrar sus propios esfuerzos), incluiré el tipo de cosas que deberá verificar. Supongo que lo verificará antes de hacer cualquier otra cosa dentro de su bbloomer_variation_price_format_min
método, pero el punto exacto en el que busca «Agotado» puede ser diferente. De todos modos, aquí está la idea.
Deberá usar algún tipo de método que averigüe si el producto está «Agotado». Esto probablemente será un if
declaración. En realidad, una búsqueda rápida me llevó a un if
declaración, por lo que es posible que tenga un código ejecutable aquí, después de todo.
De otra respuesta SO, parece que el método es get_stock_quantity()
. Para ser un poco más específico, realizará una prueba como
if ( $product->get_stock_quantity() == 0 )
o, para hacer el código aún más legible.
$product_is_out_of_stock = ( $product->get_stock_quantity() == 0 );
if ( $product_is_out_of_stock == True )
Tenga en cuenta que solo he anotado qué if
se debe usar la declaración; deberá completar el código para el if
condición y la else
condición, probablemente rodeando cada uno con corchetes, {
y }
.
Haz ese control. Si encuentra que el producto está agotado, return
una cadena que le dice al cliente eso. Si no está agotado, continúe con su función tal como está y return
la cuerda que tienes sprintf
-ed en el $price
variable.
Espero que esto te lleve por el buen camino. Si tiene problemas para obtener el código que se ejecutará, agregue una edición que muestre sus intentos de verificar si algo está agotado.
NOTA: No intenté ejecutar esto. Es más una respuesta conceptual.
Editar
Parece que has trabajado en ello. Déjame ser un poco más específico con el código que podrías usar. Publicaré el código, luego espero tener algo de tiempo pronto para probarlo con el programa descargado.
/**
* @snippet Variable Product Price Range: "From: $$$min_price"
* @how-to Get CustomizeWoo.com FREE
* @sourcecode https://businessbloomer.com/?p=275
* @author Rodolfo Melogli
* @compatible WooCommerce 3.5.4
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_filter( 'woocommerce_variable_price_html', 'bbloomer_variation_price_format_min', 9999, 2 );
function bbloomer_variation_price_format_min( $price, $product ) {
$product_is_out_of_stock = ( $product->get_stock_quantity() == 0 );
if ( $product_is_out_of_stock == True ) {
$price = sprintf( 'Product, %s , is Out of Stock.', $product );
return $price;
}
else {
$prices = $product->get_variation_prices( true );
$min_price = current( $prices['price'] );
$price = sprintf( __( 'From: %1$s', 'woocommerce' ), wc_price( $min_price ) );
return $price;
}
}
Pruébalo con lo que tienes ahora. En cuanto a la clonación de una base de datos, probablemente no soy el mejor para ayudarte con eso ahora. Sin embargo, sería útil saber qué estás usando. A partir de una búsqueda en línea de «__
«operador, parece que está usando wordpress o CakePHP (u otro marco PHP). Sería bueno agregar detalles sobre eso para mí o para quien termine ayudándolo.
.