PATH:
home
/
thebhoeo
/
public_html
/
officepoint
/
wp-content
/
plugins
/
woocommerce
/
src
/
Admin
/
Features
<?php /** * WooCommerce Product Variations Classic Redesign */ declare( strict_types = 1 ); namespace Automattic\WooCommerce\Admin\Features; /** * Loads assets for the product variations classic redesign feature. */ class ProductVariationsClassicRedesign { const FEATURE_ID = 'product-variations-classic-redesign'; const SCRIPT_HANDLE = 'wc-experimental-products-app'; const SCRIPT_PATH = 'experimental-products-app'; const ROOT_ID = 'woocommerce-variations-classic-root'; const ATTRIBUTES_ROOT_ID = 'woocommerce-product-attributes-classic-root'; /** * Constructor */ public function __construct() { if ( ! is_admin() ) { return; } add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 20 ); add_filter( 'woocommerce_product_data_tabs', array( $this, 'handle_woocommerce_product_data_tabs' ), 5 ); } /** * Returns true if we are on a product edit screen. */ public static function is_product_edit_page(): bool { $screen = get_current_screen(); return $screen && 'product' === $screen->post_type && 'post' === $screen->base; } /** * Returns true if the user has requested legacy editing for a specific variation. */ public static function is_legacy_variation_edit(): bool { // phpcs:disable WordPress.Security.NonceVerification return isset( $_GET['edit_variation'] ) && is_numeric( $_GET['edit_variation'] ); // phpcs:enable WordPress.Security.NonceVerification } /** * Handle the woocommerce_product_data_tabs filter. * * @internal * * @param array $tabs Product data tabs. * @return array Product data tabs. */ public function handle_woocommerce_product_data_tabs( array $tabs ): array { if ( isset( $tabs['variations'] ) && is_array( $tabs['variations'] ) ) { $tabs['variations']['priority'] = 40; } if ( isset( $tabs['linked_product'] ) && is_array( $tabs['linked_product'] ) ) { $tabs['linked_product']['priority'] = 60; } return $tabs; } /** * Enqueue scripts and styles for the variations table. */ public function enqueue_scripts(): void { if ( ! self::is_product_edit_page() || self::is_legacy_variation_edit() ) { return; } wp_enqueue_script( self::SCRIPT_HANDLE ); wp_enqueue_style( self::SCRIPT_HANDLE ); global $post; $product_id = $post ? $post->ID : 0; $script = sprintf( 'window.wc.experimentalProductsApp.initializeVariationView( %s, %d );', wp_json_encode( self::ROOT_ID ), $product_id ); $script .= sprintf( ' window.wc.experimentalProductsApp.initializeProductAttributesView( %s, %d );', wp_json_encode( self::ATTRIBUTES_ROOT_ID ), $product_id ); wp_add_inline_script( self::SCRIPT_HANDLE, $script, 'after' ); } }
[+]
Blueprint
[-] ProductVariationsClassicRedesign.php
[edit]
[+]
OnboardingTasks
[-] Features.php
[edit]
[+]
ShippingPartnerSuggestions
[+]
ProductBlockEditor
[+]
Navigation
[-] TransientNotices.php
[edit]
[+]
Fulfillments
[+]
..
[+]
ProductDataViews
[-] Onboarding.php
[edit]
[+]
AsyncProductEditorCategoryField
[-] LaunchYourStore.php
[edit]
[+]
PaymentGatewaySuggestions
[+]
MarketingRecommendations