这里的总体思路非常简单:更好地了解每个产品的"添加到购物车"按钮获得的点击量(S).为什么?以了解该产品是否至少令人感兴趣.
顾客是否完成 checkout 是另一回事,因此,这一"计数"传奇中的"下一步"是另一回事.
再一次,我在这里和那里找到了零星的东西--但没有一件是真正起作用的.我已经成功地在WooCommerce > Proudcts
中创建了这个专栏,并且我已经开始理解JS部分的内容--但无论我做什么,点击次数都不会被计算在内.
我想要和需要的: 每次访问者或登录的客户点击"添加到购物车"按钮(循环、档案、产品页面等)时,该点击都应该被计算在内.一切都从0开始.然后1次点击=将CONT变为1.然后再次点击=将计数器变为2-以此类推.
这是我正在使用的代码.
Part 1:个
// remove all versions of the "Add To Cart" and replace them
remove_action(' woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30 );
add_action('woocommerce_simple_add_to_cart', 'count_add_to_cart_with_clicks', 1);
function count_add_to_cart_with_clicks() {
// add our own version
add_action( 'woocommerce_simple_add_to_cart', 'count_simple_add_to_cart_with_clicks', 30 );
}
function count_simple_add_to_cart_with_clicks() {
global $product;
if ( ! $product->add_to_cart_url() ) return;
echo '<p><a href="' . $product->add_to_cart_url() . '" class="single_add_to_cart_button button alt countable"
data-pid="' . $product->get_id() . '">' . $product->single_add_to_cart_text() . '</a></p>';
// js that should count each click and show the number in wp-admin under WoooCommerce > Products
wc_enqueue_js( "
$( 'a.countable' ).click( function( e ) {
e.preventDefault();
$.post( '" . '/wp-admin/admin-ajax.php' . "', { action: 'increment_counter', pid: $( this ).data( 'pid' ) } );
window.open($ ( this ).attr( 'href' ) );
}
);
");
}
Part 2:个
add_action( 'wp_ajax_increment_counter', 'count_increment_counter' );
add_action( 'wp_ajax_nopriv_increment_counter', 'count_increment_counter' );
function count_increment_counter() {
$pid = $_POST['pid'];
$click = get_post_meta( $pid, '_click_counter', true ) ? (int) get_post_meta( $pid, '_click_counter', true ) + 1 : 1; update_post_meta( $pid, '_click_counter', $click );
wp_die();
}
Part 3:个
add_filter( 'manage_edit-product_columns', 'count_clicks_in_admin_products_column', 9999);
function count_clicks_in_admin_products_column( $columns ) {
$columns['click'] = 'click';
return $columns;
}
Part 4:个
add_action( 'manage_product_posts_custom_column', 'click_admin_products_views_column_content', 9999, 2 );
function click_admin_products_views_column_content( $column, $product_id ) {
if ( $column == 'click' ) {
echo get_post_meta( $product_id, '_click_counter', true );
}
}
研究了Java脚本和如何使用计数器创建列.但我被困住了.