jimaroonie
Estamos utilizando el tema Neighborhood en WordPress y Woo Commerce para vender artículos únicos y únicos. La gestión de existencias funciona bien en términos de garantizar que los productos vendidos no se puedan volver a comprar mostrando el artículo como agotado. En principio, esto está bien y, de hecho, la visualización de “En stock” cambiando a “Fuera de stock” debajo del precio en la descripción del artículo no funciona e incluso hemos encontrado un código para cambiar esa visualización si es necesario. aquí. Esto funciona bien: agregue el siguiente código a functions.php en el tema:
add_filter('woocommerce_stock_html', 'change_stock_message', 10, 2);
function change_stock_message($message, $stock_status) {
if ($stock_status == "Out of stock") {
$message="<p class="stock out-of-stock">Sold</p>";
} else {
$message="<p class="stock in-stock">Available</p>";
}
return $message;
}
Sin embargo, lo que realmente queremos hacer es cambiar el texto en la insignia de agotado que aparece en la imagen, por ejemplo. http://neighborhood.swiftideas.net/product/common-projects-achilles/.
Cambiar el CSS no es un problema, por lo que la fuente del texto, el fondo, el tamaño, etc. se modifica fácilmente agregando algo como esto al CSS personalizado:
.out-of-stock-badge {
background: red;
font-size: 12px;
}
¿Cómo cambiar el texto de la insignia de agotado de “Agotado” a “VENDIDO”?
Marzo de 2019 El fragmento que necesita está en un archivo llamado wc-product-loop-outofstock-flash.php (en mi caso, wp-content/Themes/Avada/woocommerce)
<?php if ( ! $product->is_in_stock() ) : ?>
<div class="fusion-out-of-stock">
<div class="fusion-position-text">
<?php esc_attr_e( 'Fully Booked', 'Avada' ); ?>
</div>
</div>
<?php
endif;
Mira los resultados aquí pero no puedo garantizar que estarán disponibles después de mayo de 2019. Los artículos completos se encuentran en la parte inferior de la página.
-
¿Puede encontrar una manera de proporcionar “los resultados” de una manera que no caduque? Tal vez, ¿una captura de pantalla que pueda incluir como imagen en su respuesta? (gracias)
– elbrante
23 de marzo de 2019 a las 1:33
No sé sobre el tema que estás usando. Pero creo que el siguiente código podría resolver su problema:
add_filter('woocommerce_sale_flash', 'woocommerce_sale_flashmessage', 10, 2);
function woocommerce_sale_flashmessage($flash){
global $product;
$availability = $product->get_availability();
if ($availability['availability'] == 'Out of stock') :
$flash="<span class="out-of-stock-badge">".__( 'SOLD', 'woocommerce' ).'</span>';
endif;
return $flash;
}
Agregue esto en el archivo functions.php de su tema.
-
Hola @maksbd19 gracias por la respuesta. Desafortunadamente, no puedo hacer que esto funcione cuando lo agrego a functions.php. Entiendo, en principio, cómo debería funcionar esto, ¡pero la insignia de agotado todavía dice agotado!
– jimaroonie
30 de octubre de 2013 a las 6:19
-
lo que descubrí anteriormente es que este texto podría provenir del archivo sale-flash.php de la página de plantilla de woocommerce. Eso podría estar en la ubicación del directorio de vecindario\woocommerce\single-product. Si está allí, puede intentar cambiar el texto allí. Es realmente difícil tratar de resolver un problema de plantilla sin tener el entorno.
– maksbd19
30 de octubre de 2013 a las 12:43
-
Gracias @ maksbd19, su sugerencia me permitió descubrir qué archivos necesitaba cambiar y que he incluido en la respuesta a continuación.
– jimaroonie
11 de noviembre de 2013 a las 2:26
Siguiendo la sugerencia de @ maksbd19, encontré dos archivos que requerían edición dentro de la carpeta de woocommerce dentro de la carpeta de temas (en este caso, vecindario). Estos son content-product.php y single-product\product-image.php. En ambos casos, cambio la siguiente línea de ‘Agotado’ a ‘Vendido’ de la siguiente manera:
...} else if (is_out_of_stock()) {
echo '<span class="out-of-stock-badge">' . __( 'Sold', 'swiftframework' ) . '</span>';
} else if (!$product->get_price()) {...
Espero que eso ayude a alguien.
Prajwal
Puede usar el código en su archivo child themes header.php
Para crear un tema hijo – https://codex.wordpress.org/Child_Themes
jQuery( document ).ready(function() {
jQuery(".onsale.oos").text(function () {
return jQuery(this).text().replace("Out of stock", "SOLD");
});
});
Código de @brasofilo del primer enlace ya agregado. El segundo enlace es un ejemplo para el que no tengo código/instantánea (de ahí la solicitud). He agregado una captura de pantalla si eso ayuda (aunque solo puedo vincular la imagen porque no tengo suficiente representante :(). ¡Gracias por el comentario!
– jimaroonie
20/10/2013 a las 11:00