Мы все знакомы с Google Analytics и тем, как он помогает нам отслеживать наши данные. Но что, если я скажу вам, что можно создать свои собственные функции отслеживания на вашем сайте WooCommerce? Давайте создадим наш счетчик на WooCommerce. Это может быть очень полезно, особенно если вы хотите знать, сколько раз пользователи нажимают на кнопку «Купить товар» на странице внешнего продукта, а затем отображать количество в таблице продуктов в административной части сайта.
Это, например, позволит вычислить Click Through Rate (% кликов / просмотров) и узнать, насколько популярен внешний продукт. Конечно, вы можете решить расширить счетчик на все продукты и отслеживать количество кликов на кнопку «Добавить в корзину«, но давайте сегодня сосредоточимся на отслеживании кликов только по внешним продуктам.
PHP код, который считает клики. Счетчик на WooCommerce
Шаг 1: Во-первых, мы удаляем стандартную кнопку добавления в корзину для внешнего продукта и заменяем ее нашей собственной кнопкой.
Шаг 2: JS запускает функцию Ajax ‘increment_counter
‘ при нажатии на кнопку.
Шаг 3: Функция Ajax ‘increment_counter
‘ подсчитывает и сохраняет количество кликов.
Шаг 4: ‘manage_edit-product_columns
‘ и ‘manage_product_posts_custom_column
‘ отображают новый столбец на странице продуктов (в админ панели) и помещают в него значение счетчика.
// Шаг #1
add_action( 'woocommerce_external_add_to_cart', 'genius_new_external_add_to_cart', 1 );
function genius_new_external_add_to_cart() {
remove_action( 'woocommerce_external_add_to_cart', 'woocommerce_external_add_to_cart', 30 );
add_action( 'woocommerce_external_add_to_cart', 'genius_external_add_to_cart', 30 );
}
// Это наша собственная кнопка
function genius_external_add_to_cart() {
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>';
// Шаг 2
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'));
});
" );
}
// Шаг 3
add_action( 'wp_ajax_increment_counter', 'genius_increment_counter' );
add_action( 'wp_ajax_nopriv_increment_counter', 'genius_increment_counter' );
function genius_increment_counter() {
$pid = $_POST['pid'];
$clicks = get_post_meta( $pid, '_click_counter', true ) ? (int) get_post_meta( $pid, '_click_counter', true ) + 1 : 1;
update_post_meta( $pid, '_click_counter', $clicks );
wp_die();
}
// Шаг 4
add_filter( 'manage_edit-product_columns', 'genius_admin_products_views_column', 9999 );
function genius_admin_products_views_column( $columns ){
$columns['clicks'] = 'Clicks';
return $columns;
}
add_action( 'manage_product_posts_custom_column', 'genius_admin_products_views_column_content', 9999, 2 );
function genius_admin_products_views_column_content( $column, $product_id ){
if ( $column == 'clicks' ) {
echo get_post_meta( $product_id, '_click_counter', true );
}
}
Если вы не знаете куда вставить данный код, то кидайте его в файл functions.php вашей WordPress темы.
Добавление собственного счетчика кликов на кнопку «Купить» на внешних продуктах WooCommerce позволяет легко отслеживать популярность продуктов и получать ценную информацию о кликах пользователей.