Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/woocomme.../src/Internal/Admin/Notes
File: TrackingOptIn.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* WooCommerce Admin Usage Tracking Opt In Note Provider.
[2] Fix | Delete
*
[3] Fix | Delete
* Adds a Usage Tracking Opt In extension note.
[4] Fix | Delete
*/
[5] Fix | Delete
[6] Fix | Delete
namespace Automattic\WooCommerce\Internal\Admin\Notes;
[7] Fix | Delete
[8] Fix | Delete
defined( 'ABSPATH' ) || exit;
[9] Fix | Delete
[10] Fix | Delete
use Automattic\WooCommerce\Admin\Notes\Note;
[11] Fix | Delete
use Automattic\WooCommerce\Admin\Notes\NoteTraits;
[12] Fix | Delete
use WC_Tracks;
[13] Fix | Delete
[14] Fix | Delete
/**
[15] Fix | Delete
* Tracking_Opt_In
[16] Fix | Delete
*/
[17] Fix | Delete
class TrackingOptIn {
[18] Fix | Delete
/**
[19] Fix | Delete
* Note traits.
[20] Fix | Delete
*/
[21] Fix | Delete
use NoteTraits;
[22] Fix | Delete
[23] Fix | Delete
/**
[24] Fix | Delete
* Name of the note for use in the database.
[25] Fix | Delete
*/
[26] Fix | Delete
const NOTE_NAME = 'wc-admin-usage-tracking-opt-in';
[27] Fix | Delete
[28] Fix | Delete
/**
[29] Fix | Delete
* Attach hooks.
[30] Fix | Delete
*/
[31] Fix | Delete
public function __construct() {
[32] Fix | Delete
add_action( 'woocommerce_note_action_tracking-opt-in', array( $this, 'opt_in_to_tracking' ) );
[33] Fix | Delete
}
[34] Fix | Delete
[35] Fix | Delete
/**
[36] Fix | Delete
* Get the note.
[37] Fix | Delete
*
[38] Fix | Delete
* @return Note|null
[39] Fix | Delete
*/
[40] Fix | Delete
public static function get_note() {
[41] Fix | Delete
// Only show this note to stores that are opted out.
[42] Fix | Delete
if ( 'yes' === get_option( 'woocommerce_allow_tracking', 'no' ) ) {
[43] Fix | Delete
return;
[44] Fix | Delete
}
[45] Fix | Delete
[46] Fix | Delete
// We want to show the note after one week.
[47] Fix | Delete
if ( ! self::is_wc_admin_active_in_date_range( 'week-1-4' ) ) {
[48] Fix | Delete
return;
[49] Fix | Delete
}
[50] Fix | Delete
[51] Fix | Delete
/* translators: 1: open link to WooCommerce.com settings, 2: open link to WooCommerce.com tracking documentation, 3: close link tag. */
[52] Fix | Delete
$content_format = __(
[53] Fix | Delete
'Gathering usage data allows us to improve WooCommerce. Your store will be considered as we evaluate new features, judge the quality of an update, or determine if an improvement makes sense. You can always visit the %1$sSettings%3$s and choose to stop sharing data. %2$sRead more%3$s about what data we collect.',
[54] Fix | Delete
'woocommerce'
[55] Fix | Delete
);
[56] Fix | Delete
[57] Fix | Delete
$note_content = sprintf(
[58] Fix | Delete
$content_format,
[59] Fix | Delete
'<a href="' . esc_url( admin_url( 'admin.php?page=wc-settings&tab=advanced&section=woocommerce_com' ) ) . '" target="_blank">',
[60] Fix | Delete
'<a href="https://woocommerce.com/usage-tracking?utm_medium=product" target="_blank">',
[61] Fix | Delete
'</a>'
[62] Fix | Delete
);
[63] Fix | Delete
[64] Fix | Delete
$note = new Note();
[65] Fix | Delete
$note->set_title( __( 'Help WooCommerce improve with usage tracking', 'woocommerce' ) );
[66] Fix | Delete
$note->set_content( $note_content );
[67] Fix | Delete
$note->set_content_data( (object) array() );
[68] Fix | Delete
$note->set_type( Note::E_WC_ADMIN_NOTE_INFORMATIONAL );
[69] Fix | Delete
$note->set_name( self::NOTE_NAME );
[70] Fix | Delete
$note->set_source( 'woocommerce-admin' );
[71] Fix | Delete
$note->add_action( 'tracking-opt-in', __( 'Activate usage tracking', 'woocommerce' ), false, Note::E_WC_ADMIN_NOTE_ACTIONED, true, __( 'Usage tracking activated', 'woocommerce' ) );
[72] Fix | Delete
return $note;
[73] Fix | Delete
}
[74] Fix | Delete
[75] Fix | Delete
/**
[76] Fix | Delete
* Opt in to usage tracking when note is actioned.
[77] Fix | Delete
*
[78] Fix | Delete
* @param Note $note Note being acted upon.
[79] Fix | Delete
*/
[80] Fix | Delete
public function opt_in_to_tracking( $note ) {
[81] Fix | Delete
if ( self::NOTE_NAME === $note->get_name() ) {
[82] Fix | Delete
// Get the previous value of the tracking.
[83] Fix | Delete
$prev_value = get_option( 'woocommerce_allow_tracking', 'no' );
[84] Fix | Delete
[85] Fix | Delete
// Opt in to tracking and schedule the first data update.
[86] Fix | Delete
// Same mechanism as in WC_Admin_Setup_Wizard::wc_setup_store_setup_save().
[87] Fix | Delete
update_option( 'woocommerce_allow_tracking', 'yes' );
[88] Fix | Delete
[89] Fix | Delete
// Track woocommerce_allow_tracking_toggled in case was set as 'no' before.
[90] Fix | Delete
if ( class_exists( 'WC_Tracks' ) && 'no' === $prev_value ) {
[91] Fix | Delete
WC_Tracks::track_woocommerce_allow_tracking_toggled( $prev_value, 'yes', 'usage_tracking_note' );
[92] Fix | Delete
}
[93] Fix | Delete
[94] Fix | Delete
wp_schedule_single_event( time() + 10, 'woocommerce_tracker_send_event', array( true ) );
[95] Fix | Delete
}
[96] Fix | Delete
}
[97] Fix | Delete
}
[98] Fix | Delete
[99] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function