在我的WooCommere商店,当我的产品处于落后状态时,我的产品上仍然会出现销售徽章。我想把销售徽章换成“库存外”标签。
到目前为止,我有这样的代码:
add_action( 'woocommerce_before_shop_loop_item_title', 'new_badge', 3 );
function new_badge() {
global $product;
if ( $product->is_on_backorder(1) ) {
echo '<span class="out-of-stock-badge" data-shape="type-3">' . esc_html__( 'Out Of Stock', 'woocommerce' ) . '</span>';
}
}此代码只在现有的销售徽章上添加带有缺货标识的跨度,这会引发重叠。
有办法直接删除销售徽章吗?
发布于 2022-11-04 10:21:07
您可以使用过滤器'woocommerce_sale_flash‘删除默认的销售闪存徽章。
试试这段代码。
add_action( 'woocommerce_before_shop_loop_item_title', 'new_badge', 3 );
function new_badge() {
global $product;
if ( $product->is_on_backorder(1) ) {
add_filter('woocommerce_sale_flash', function (){return false;});
echo '<span class="out-of-stock-badge" data-shape="type-3">' . esc_html__( 'Out Of Stock', 'woocommerce' ) . '</span>';
}
}发布于 2022-11-04 09:48:15
再加上WooCommerce卖光了整个商店,最常见的情况是把WooCommerce卖光了,把所有的产品都卖光了。这可以通过在主题的functions.php文件中放置以下代码片段来实现。
add_action(‘woocommerce_item_shop_loop_item_title’,函数(){
全球$product;
如果(!$product>is_in_stock()){
echo '<span class="now_sold">Now Sold</span>';});
将以下CSS代码放入style.css文件(位于主题文件夹中):
.now_sold {
background: #000080;
color: #fff;
font-size: 14px;
font-weight: 700;
padding: 6px 12px;
position: absolute;
right: 0;
top: 0;}
https://stackoverflow.com/questions/74314424
复制相似问题