我正在建立一个带有woocommerce的艺术画廊。 每种产品的打印数量有限(例如:100)。 我正在寻找一种在产品标题中显示的方式,即根据已售出的打印数量显示当前打印的数量,例如,如果销售的打印数量为20,则产品名称为" NAME打印 - 打印数字21"
到目前为止,我一直在网上寻找解决方案,但找不到正确的方法。
感谢任何帮助。
答案 0 :(得分:1)
您可以访问woocommerce产品详情页面title
。
对于默认页面结构和挂钩,您可以看到here
remove_action('woocommerce_single_product_summary','woocommerce_template_single_title',5);
add_action('woocommerce_single_product_summary', 'woocommerce_title_with_sold',5);
function woocommerce_title_with_sold() {
?>
<h1 itemprop="name" class="product_title entry-title">
<span>
<?php the_title(); ?> - <?php echo $units_sold = get_post_meta( get_the_ID(), 'total_sales', true ); ?>
</span>
</h1>
<?php
}
如果你想在任何地方展示你需要寻找woocomerce钩子/过滤器/动作
答案 1 :(得分:1)
更新:以下代码将显示在产品销售数量的单个产品页面和存档页面中:
// Single product pages
add_action( 'woocommerce_single_product_summary', 'custom_single_product_title', 2 );
function custom_single_product_title() {
remove_action('woocommerce_single_product_summary','woocommerce_template_single_title', 5 );
add_action('woocommerce_single_product_summary', 'product_title_custom', 5 );
}
// Shop and archives pages
add_action( 'woocommerce_shop_loop_item_title', 'custom_loop_product_title', 2 );
function custom_loop_product_title() {
remove_action('woocommerce_shop_loop_item_title','woocommerce_template_loop_product_title', 10 );
add_action('woocommerce_shop_loop_item_title', 'product_title_custom', 10 );
}
function product_title_custom() {
global $product;
$sales = $product->get_total_sales();
$single_text = __( "PRINT NUMBER", "woocommerce" ) . ' ' . $sales;
if( is_product() ) : // Single product pages
?>
<h1 itemprop="name" class="product_title entry-title">
<span><?php the_title(); ?></span> - <span><?php echo $single_text; ?></span>
</h1>
<?php
else : // Loop product pages (shop and archives)
?>
<h2 class="woocommerce-loop-product__title"><?php the_title(); echo "($sales)"; ?></h2>
<?php
endif;
}
在商品名称购物车和结帐页面中显示产品销售数量 :
// Add to cart items names the total sales
add_filter( 'woocommerce_cart_item_name', 'custom_product_title_name', 20, 3 );
function custom_product_title_name( $cart_item_name, $cart_item, $cart_item_key ){
// The product object from cart item
$product = $cart_item['data'];
$sales = $product->get_total_sales();
$text = __( "PRINT NUMBER", "woocommerce" ) . ' ';
return $cart_item_name . ' - ' . $text . $sales;
}
要在商品名称订购页面和电子邮件通知中显示商品销售数量:
add_filter( 'woocommerce_order_item_name', 'add_single_excerpt_to_order_item', 10, 3 );
function add_single_excerpt_to_order_item( $item_name, $item, $is_visible ){
$product = $item->get_product();
$sales = $product->get_total_sales();
$text = __( "PRINT NUMBER", "woocommerce" ) . ' ';
return $item_name . ' - ' . $text . $sales;
}
要在管理订单编辑页面中显示产品销售数量,无法以相同的方式显示...我必须在单独的行中位于产品标题下:
add_action( 'woocommerce_before_order_itemmeta', 'total_sales_before_order_itemmeta', 10, 3 );
function total_sales_before_order_itemmeta( $item_id, $item, $product ){
// Only on backend order edit pages
if( ! ( is_admin() && $item->is_type('line_item') ) ) return;
echo '<p><em>' .__( "Total sales" ) . ': ' . $product->get_total_sales() . '</em></p>';
}
代码放在活动子主题(或活动主题)的function.php文件中。经过测试和工作。