WC_Admin_Pointers::enqueue_pointers()
Enqueue pointers and add script to page.
{} It's a method of the class: WC_Admin_Pointers{}
No Hooks.
Return
null
. Nothing.
Usage
$WC_Admin_Pointers = new WC_Admin_Pointers(); $WC_Admin_Pointers->enqueue_pointers( $pointers );
- $pointers(array) (required)
- Pointers data.
Code of WC_Admin_Pointers::enqueue_pointers() WC Admin Pointers::enqueue pointers WC 6.7.0
public function enqueue_pointers( $pointers ) { $pointers = rawurlencode( wp_json_encode( $pointers ) ); wp_enqueue_style( 'wp-pointer' ); wp_enqueue_script( 'wp-pointer' ); wc_enqueue_js( "jQuery( function( $ ) { var wc_pointers = JSON.parse( decodeURIComponent( '{$pointers}' ) ); var current_pointer; const recordEvent = window.wc.tracks.recordEvent || window.wcTracks.recordEvent || function() {}; const publishButton = $( '#publish' ); setTimeout( init_wc_pointers, 800 ); // Records completion or dismiss if publish button is clicked. function onPublish() { if ( current_pointer && current_pointer.options.step_name === 'old-publish' ) { recordEvent( 'walkthrough_product_completed' ); } else if ( current_pointer ) { recordEvent( 'walkthrough_product_dismissed', { step_name: current_pointer.options.step_name } ); } } function init_wc_pointers() { $.each( wc_pointers.pointers, function( i ) { show_wc_pointer( i ); return false; }); recordEvent( 'walkthrough_product_view', { spotlight: 'no', product_template: 'physical', } ); publishButton.on( 'click', onPublish ); } function show_wc_pointer( id ) { var pointer = wc_pointers.pointers[ id ]; current_pointer = pointer; var options = $.extend( pointer.options, { pointerClass: 'wp-pointer wc-pointer', close: function() { if ( pointer.next ) { show_wc_pointer( pointer.next ); } }, buttons: function( event, t ) { var close = '" . esc_js( __( 'Dismiss', 'woocommerce' ) ) . "', next = '" . esc_js( __( 'Next', 'woocommerce' ) ) . "', button = $( '<a class=\"close\" href=\"#\">' + close + '</a>' ), button2 = $( '<a class=\"button button-primary\" href=\"#\">' + next + '</a>' ), wrapper = $( '<div class=\"wc-pointer-buttons\" />' ); button.on( 'click.pointer', function(e) { e.preventDefault(); t.element.pointer('destroy'); publishButton.off( 'click', onPublish ); // Tracks completion if it's the last step, otherwise track as dismiss. if ( pointer.next ) { recordEvent( 'walkthrough_product_dismissed', { step_name: pointer.options.step_name } ); } else { recordEvent( 'walkthrough_product_completed' ); } }); button2.on( 'click.pointer', function(e) { e.preventDefault(); t.element.pointer('close'); if ( !pointer.next ) { recordEvent( 'walkthrough_product_completed' ); } }); wrapper.append( button ); wrapper.append( button2 ); return wrapper; }, } ); var this_pointer = $( pointer.target ).pointer( options ); this_pointer.pointer( 'open' ); if ( pointer.next_trigger ) { $( pointer.next_trigger.target ).on( pointer.next_trigger.event, function() { setTimeout( function() { this_pointer.pointer( 'close' ); }, 400 ); }); } } });" ); }