📁 File Manager Pro
v10.0.3 | PHP: 8.2.31
Server: LiteSpeed
2026-07-03 18:50:58
📂
/ (Root)
/
home
/
orkouolp
/
web
/
orkofarms.com
/
wp-content
/
plugins
/
woocommerce
/
src
/
Internal
/
VariationGallery
📍 /home/orkouolp/web/orkofarms.com/wp-content/plugins/woocommerce/src/Internal/VariationGallery
🔄 Refresh
✏️
Editing: Telemetry.php
Writable
<?php /** * Telemetry for the variation gallery feature. */ declare( strict_types=1 ); namespace Automattic\WooCommerce\Internal\VariationGallery; use Automattic\WooCommerce\Internal\RegisterHooksInterface; defined( 'ABSPATH' ) || exit; /** * Tracker snapshot + Tracks events for the merged variation gallery feature. */ class Telemetry implements RegisterHooksInterface { public const EVENT_SAVE_SUCCEEDED = 'variation_gallery_save_succeeded'; public const EVENT_SAVE_FAILED = 'variation_gallery_save_failed'; public const EVENT_MIGRATION_COMPLETED = 'variation_gallery_migration_completed'; private const LEGACY_PLUGIN_FILE = 'woocommerce-additional-variation-images/woocommerce-additional-variation-images.php'; /** * Register the tracker snapshot filter. * * @return void */ public function register() { add_filter( 'woocommerce_tracker_data', array( $this, 'add_snapshot_to_tracker_data' ), 10, 1 ); } /** * Append the variation gallery snapshot fields to WC_Tracker's payload. * * @param array $data The aggregated tracker data. * @return array */ public function add_snapshot_to_tracker_data( array $data ): array { $data['variation_gallery'] = self::collect_snapshot(); return $data; } /** * Collect the variation gallery snapshot fields. * * @return array<string, mixed> */ public static function collect_snapshot(): array { global $wpdb; $option_value = get_option( Package::ENABLE_OPTION_NAME, '' ); $variant_assignment = (int) get_option( 'woocommerce_remote_variant_assignment', 0 ); $cohort = ( $variant_assignment > 0 && $variant_assignment <= 5 ) ? 'treatment' : 'control'; $legacy_plugin_active = self::is_legacy_plugin_active(); $legacy_plugin_file = WP_PLUGIN_DIR . '/' . self::LEGACY_PLUGIN_FILE; $migrated_variation_count = (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(post_id) FROM {$wpdb->postmeta} WHERE meta_key = %s", LegacyVariationGalleryCompatibility::get_core_managed_meta_key() ) ); $variation_gallery_rows = $wpdb->get_col( "SELECT pm.meta_value FROM {$wpdb->postmeta} pm INNER JOIN {$wpdb->posts} p ON p.ID = pm.post_id WHERE pm.meta_key = '_product_image_gallery' AND pm.meta_value <> '' AND p.post_type = 'product_variation'" ); $authored_variation_count = 0; $total_image_count = 0; $single_image_variation_count = 0; $multi_image_variation_count = 0; foreach ( $variation_gallery_rows as $meta_value ) { $image_ids = wp_parse_id_list( $meta_value ); $count = count( $image_ids ); if ( 0 === $count ) { continue; } ++$authored_variation_count; $total_image_count += $count; if ( 1 === $count ) { ++$single_image_variation_count; } else { ++$multi_image_variation_count; } } $authored_without_legacy_count = (int) $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->postmeta} core_pm INNER JOIN {$wpdb->posts} p ON p.ID = core_pm.post_id LEFT JOIN {$wpdb->postmeta} legacy_pm ON legacy_pm.post_id = core_pm.post_id AND legacy_pm.meta_key = '_wc_additional_variation_images' WHERE core_pm.meta_key = '_product_image_gallery' AND core_pm.meta_value <> '' AND p.post_type = 'product_variation' AND legacy_pm.post_id IS NULL" ); return array( 'feature_enabled' => 'yes' === $option_value ? 'yes' : 'no', 'feature_option_explicit' => '' === $option_value ? 'no' : 'yes', 'remote_variant_cohort' => $cohort, 'legacy_avi_plugin_active' => $legacy_plugin_active ? 'yes' : 'no', 'legacy_avi_plugin_installed' => file_exists( $legacy_plugin_file ) ? 'yes' : 'no', 'migrated_variation_count' => $migrated_variation_count, 'authored_variation_count' => $authored_variation_count, 'authored_without_legacy_count' => $authored_without_legacy_count, 'total_image_count' => $total_image_count, 'single_image_variation_count' => $single_image_variation_count, 'multi_image_variation_count' => $multi_image_variation_count, ); } /** * Record a Tracks event. * * @param string $event_name One of the `EVENT_*` class constants. * @param array<string, mixed> $properties Event properties to attach. * @return void */ public static function record_event( string $event_name, array $properties = array() ): void { if ( ! function_exists( 'wc_admin_record_tracks_event' ) ) { return; } wc_admin_record_tracks_event( $event_name, $properties ); } /** * Whether the legacy Additional Variation Images extension is currently * active. * * @return bool */ private static function is_legacy_plugin_active(): bool { if ( ! function_exists( 'is_plugin_active' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } return is_plugin_active( self::LEGACY_PLUGIN_FILE ); } }
💾 Save Changes
❌ Cancel