WooCommerce后台产品列添加点击量/销量比值统计遇阻
WooCommerce后台产品列表点击/销量比值计算修复
错误原因
你代码里的比值计算行写法完全错误:get_post_meta( $product->get_id(), '_click_counter' / 'total_sales', true )不符合PHP语法,get_post_meta的第二个参数是元键名称,不能在这里直接做除法运算。另外还需要处理销量为0的情况,避免出现除以0的致命错误。
修改后的完整代码
function add_to_cart_click_counter( $product_id ) { $product = wc_get_product( $product_id ); $count = (int) $product->get_meta( '_click_counter' ); $count++; $product->update_meta_data( '_click_counter', $count ); $product->save(); } add_action( 'woocommerce_add_to_cart', 'count_add_to_cart_clicks', 90, 4 ); function count_add_to_cart_clicks( $cart_item_key, $product_id, $quantity, $variation_id = null ){ if ( did_action( 'woocommerce_add_to_cart' ) === 1 ) { add_to_cart_click_counter( $product_id ); if ( $variation_id > 0 ) { add_to_cart_click_counter( $variation_id ); } } } add_filter('manage_edit-product_columns', 'product_click_count_column' ); function product_click_count_column( $columns ) { $columns['click_counter'] = __( 'Clicks & Sold', 'woocommerce' ); return $columns; } add_action( 'manage_product_posts_custom_column', 'product_click_count_column_content', 10, 2 ); function product_click_count_column_content( $column, $post_id ) { global $product; if ( $column === 'click_counter' ) { if ( $product->get_type() == 'auction' ) return; // 获取销量和点击量 $sold_x_times = (int) get_post_meta( $product->get_id(), 'total_sales', true ); $click_count = (int) $product->get_meta( '_click_counter' ); // 输出销量和点击量 echo '<span>Sold </span>' . $sold_x_times . '<br><span>Clicks </span>' . $click_count; echo '<div style="margin-top:8px"></div>'; // 计算并输出点击/销量比值 if ( $sold_x_times > 0 ) { $ratio = number_format( $click_count / $sold_x_times, 2 ); echo '<span>Click/Sale Ratio: </span>' . $ratio; } else { echo '<span>Click/Sale Ratio: </span>N/A (No sales yet)'; } } }
关键修改点
- 先分别获取
total_sales和_click_counter的数值,并转为整数,确保运算时是数值类型 - 增加销量为0的判断:如果销量为0,显示"N/A (No sales yet)",避免除以0报错
- 使用
number_format把比值保留两位小数,让数据更直观易读 - 调整了间距样式,让列内内容排版更美观
内容的提问来源于stack exchange,提问作者Learning WooStoreFront
相关产品推荐
相关产品推荐

