PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /home/trave494/polo-family.com/wp-content/plugins/woocommerce-admin/src/API/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //home/trave494/polo-family.com/wp-content/plugins/woocommerce-admin/src/API/Init.php |
<?php /** * REST API bootstrap. * * @package WooCommerce Admin/Classes */ namespace Automattic\WooCommerce\Admin\API; defined( 'ABSPATH' ) || exit; use \Automattic\WooCommerce\Admin\Loader; /** * Init class. */ class Init { /** * Boostrap REST API. */ public function __construct() { // Hook in data stores. add_filter( 'woocommerce_data_stores', array( __CLASS__, 'add_data_stores' ) ); // REST API extensions init. add_action( 'rest_api_init', array( $this, 'rest_api_init' ) ); add_filter( 'rest_endpoints', array( __CLASS__, 'filter_rest_endpoints' ), 10, 1 ); // Add currency symbol to orders endpoint response. add_filter( 'woocommerce_rest_prepare_shop_order_object', array( __CLASS__, 'add_currency_symbol_to_order_response' ) ); } /** * Init REST API. */ public function rest_api_init() { $controllers = array( 'Automattic\WooCommerce\Admin\API\Notes', 'Automattic\WooCommerce\Admin\API\NoteActions', 'Automattic\WooCommerce\Admin\API\Coupons', 'Automattic\WooCommerce\Admin\API\Customers', 'Automattic\WooCommerce\Admin\API\Data', 'Automattic\WooCommerce\Admin\API\DataCountries', 'Automattic\WooCommerce\Admin\API\DataDownloadIPs', 'Automattic\WooCommerce\Admin\API\Leaderboards', 'Automattic\WooCommerce\Admin\API\Options', 'Automattic\WooCommerce\Admin\API\Orders', 'Automattic\WooCommerce\Admin\API\Products', 'Automattic\WooCommerce\Admin\API\ProductCategories', 'Automattic\WooCommerce\Admin\API\ProductVariations', 'Automattic\WooCommerce\Admin\API\ProductReviews', 'Automattic\WooCommerce\Admin\API\ProductVariations', 'Automattic\WooCommerce\Admin\API\Reports\Controller', 'Automattic\WooCommerce\Admin\API\SettingOptions', 'Automattic\WooCommerce\Admin\API\Reports\Import\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Export\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Products\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Variations\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Products\Stats\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Revenue\Stats\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Orders\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Orders\Stats\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Categories\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Taxes\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Taxes\Stats\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Coupons\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Coupons\Stats\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Stock\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Stock\Stats\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Downloads\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Downloads\Stats\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Customers\Controller', 'Automattic\WooCommerce\Admin\API\Reports\Customers\Stats\Controller', 'Automattic\WooCommerce\Admin\API\Taxes', 'Automattic\WooCommerce\Admin\API\Themes', ); if ( Loader::is_feature_enabled( 'onboarding' ) ) { $controllers = array_merge( $controllers, array( 'Automattic\WooCommerce\Admin\API\OnboardingLevels', 'Automattic\WooCommerce\Admin\API\OnboardingProfile', 'Automattic\WooCommerce\Admin\API\OnboardingPlugins', 'Automattic\WooCommerce\Admin\API\OnboardingTasks', ) ); } // The performance indicators controller must be registered last, after other /stats endpoints have been registered. $controllers[] = 'Automattic\WooCommerce\Admin\API\Reports\PerformanceIndicators\Controller'; $controllers = apply_filters( 'woocommerce_admin_rest_controllers', $controllers ); foreach ( $controllers as $controller ) { $this->$controller = new $controller(); $this->$controller->register_routes(); } } /** * Filter REST API endpoints. * * @param array $endpoints List of endpoints. * @return array */ public static function filter_rest_endpoints( $endpoints ) { // Override GET /wc/v4/system_status/tools. if ( isset( $endpoints['/wc/v4/system_status/tools'] ) && isset( $endpoints['/wc/v4/system_status/tools'][1] ) && isset( $endpoints['/wc/v4/system_status/tools'][0] ) && $endpoints['/wc/v4/system_status/tools'][1]['callback'][0] instanceof WC_Admin_REST_System_Status_Tools_Controller ) { $endpoints['/wc/v4/system_status/tools'][0] = $endpoints['/wc/v4/system_status/tools'][1]; } // // Override GET & PUT for /wc/v4/system_status/tools. if ( isset( $endpoints['/wc/v4/system_status/tools/(?P<id>[\w-]+)'] ) && isset( $endpoints['/wc/v4/system_status/tools/(?P<id>[\w-]+)'][3] ) && isset( $endpoints['/wc/v4/system_status/tools/(?P<id>[\w-]+)'][2] ) && $endpoints['/wc/v4/system_status/tools/(?P<id>[\w-]+)'][2]['callback'][0] instanceof WC_Admin_REST_System_Status_Tools_Controller && $endpoints['/wc/v4/system_status/tools/(?P<id>[\w-]+)'][3]['callback'][0] instanceof WC_Admin_REST_System_Status_Tools_Controller ) { $endpoints['/wc/v4/system_status/tools/(?P<id>[\w-]+)'][0] = $endpoints['/wc/v4/system_status/tools/(?P<id>[\w-]+)'][2]; $endpoints['/wc/v4/system_status/tools/(?P<id>[\w-]+)'][1] = $endpoints['/wc/v4/system_status/tools/(?P<id>[\w-]+)'][3]; } // Override GET /wc/v4/reports. if ( isset( $endpoints['/wc/v4/reports'] ) && isset( $endpoints['/wc/v4/reports'][1] ) && isset( $endpoints['/wc/v4/reports'][0] ) && $endpoints['/wc/v4/reports'][1]['callback'][0] instanceof WC_Admin_REST_Reports_Controller ) { $endpoints['/wc/v4/reports'][0] = $endpoints['/wc/v4/reports'][1]; } // Override /wc/v4/coupons. if ( isset( $endpoints['/wc/v4/coupons'] ) && isset( $endpoints['/wc/v4/coupons'][3] ) && isset( $endpoints['/wc/v4/coupons'][2] ) && $endpoints['/wc/v4/coupons'][2]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Orders && $endpoints['/wc/v4/coupons'][3]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Orders ) { $endpoints['/wc/v4/coupons'][0] = $endpoints['/wc/v4/coupons'][2]; $endpoints['/wc/v4/coupons'][1] = $endpoints['/wc/v4/coupons'][3]; } // Override /wc/v4/customers. if ( isset( $endpoints['/wc/v4/customers'] ) && isset( $endpoints['/wc/v4/customers'][3] ) && isset( $endpoints['/wc/v4/customers'][2] ) && $endpoints['/wc/v4/customers'][2]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Customers && $endpoints['/wc/v4/customers'][3]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Customers ) { $endpoints['/wc/v4/customers'][0] = $endpoints['/wc/v4/customers'][2]; $endpoints['/wc/v4/customers'][1] = $endpoints['/wc/v4/customers'][3]; } // Override /wc/v4/orders/$id. if ( isset( $endpoints['/wc/v4/orders/(?P<id>[\d]+)'] ) && isset( $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][5] ) && isset( $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][4] ) && isset( $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][3] ) && $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][3]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Orders && $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][4]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Orders && $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][5]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Orders ) { $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][0] = $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][3]; $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][1] = $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][4]; $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][2] = $endpoints['/wc/v4/orders/(?P<id>[\d]+)'][5]; } // Override /wc/v4/orders. if ( isset( $endpoints['/wc/v4/orders'] ) && isset( $endpoints['/wc/v4/orders'][3] ) && isset( $endpoints['/wc/v4/orders'][2] ) && $endpoints['/wc/v4/orders'][2]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Orders && $endpoints['/wc/v4/orders'][3]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Orders ) { $endpoints['/wc/v4/orders'][0] = $endpoints['/wc/v4/orders'][2]; $endpoints['/wc/v4/orders'][1] = $endpoints['/wc/v4/orders'][3]; } // Override /wc/v4/data. if ( isset( $endpoints['/wc/v4/data'] ) && isset( $endpoints['/wc/v4/data'][1] ) && $endpoints['/wc/v4/data'][1]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Data ) { $endpoints['/wc/v4/data'][0] = $endpoints['/wc/v4/data'][1]; } // Override /wc/v4/products. if ( isset( $endpoints['/wc/v4/products'] ) && isset( $endpoints['/wc/v4/products'][3] ) && isset( $endpoints['/wc/v4/products'][2] ) && $endpoints['/wc/v4/products'][2]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Products && $endpoints['/wc/v4/products'][3]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Products ) { $endpoints['/wc/v4/products'][0] = $endpoints['/wc/v4/products'][2]; $endpoints['/wc/v4/products'][1] = $endpoints['/wc/v4/products'][3]; } // Override /wc/v4/products/$id. if ( isset( $endpoints['/wc/v4/products/(?P<id>[\d]+)'] ) && isset( $endpoints['/wc/v4/products/(?P<id>[\d]+)'][5] ) && isset( $endpoints['/wc/v4/products/(?P<id>[\d]+)'][4] ) && isset( $endpoints['/wc/v4/products/(?P<id>[\d]+)'][3] ) && $endpoints['/wc/v4/products/(?P<id>[\d]+)'][3]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Products && $endpoints['/wc/v4/products/(?P<id>[\d]+)'][4]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Products && $endpoints['/wc/v4/products/(?P<id>[\d]+)'][5]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Products ) { $endpoints['/wc/v4/products/(?P<id>[\d]+)'][0] = $endpoints['/wc/v4/products/(?P<id>[\d]+)'][3]; $endpoints['/wc/v4/products/(?P<id>[\d]+)'][1] = $endpoints['/wc/v4/products/(?P<id>[\d]+)'][4]; $endpoints['/wc/v4/products/(?P<id>[\d]+)'][2] = $endpoints['/wc/v4/products/(?P<id>[\d]+)'][5]; } // Override /wc/v4/products/categories. if ( isset( $endpoints['/wc/v4/products/categories'] ) && isset( $endpoints['/wc/v4/products/categories'][3] ) && isset( $endpoints['/wc/v4/products/categories'][2] ) && $endpoints['/wc/v4/products/categories'][2]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\ProductCategories && $endpoints['/wc/v4/products/categories'][3]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\ProductCategories ) { $endpoints['/wc/v4/products/categories'][0] = $endpoints['/wc/v4/products/categories'][2]; $endpoints['/wc/v4/products/categories'][1] = $endpoints['/wc/v4/products/categories'][3]; } // Override /wc/v4/products/reviews. if ( isset( $endpoints['/wc/v4/products/reviews'] ) && isset( $endpoints['/wc/v4/products/reviews'][3] ) && isset( $endpoints['/wc/v4/products/reviews'][2] ) && $endpoints['/wc/v4/products/reviews'][2]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\ProductReviews && $endpoints['/wc/v4/products/reviews'][3]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\ProductReviews ) { $endpoints['/wc/v4/products/reviews'][0] = $endpoints['/wc/v4/products/reviews'][2]; $endpoints['/wc/v4/products/reviews'][1] = $endpoints['/wc/v4/products/reviews'][3]; } // Override /wc/v4/products/$product_id/variations. if ( isset( $endpoints['products/(?P<product_id>[\d]+)/variations'] ) && isset( $endpoints['products/(?P<product_id>[\d]+)/variations'][3] ) && isset( $endpoints['products/(?P<product_id>[\d]+)/variations'][2] ) && $endpoints['products/(?P<product_id>[\d]+)/variations'][2]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\ProductVariations && $endpoints['products/(?P<product_id>[\d]+)/variations'][3]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\ProductVariations ) { $endpoints['products/(?P<product_id>[\d]+)/variations'][0] = $endpoints['products/(?P<product_id>[\d]+)/variations'][2]; $endpoints['products/(?P<product_id>[\d]+)/variations'][1] = $endpoints['products/(?P<product_id>[\d]+)/variations'][3]; } // Override /wc/v4/taxes. if ( isset( $endpoints['/wc/v4/taxes'] ) && isset( $endpoints['/wc/v4/taxes'][3] ) && isset( $endpoints['/wc/v4/taxes'][2] ) && $endpoints['/wc/v4/taxes'][2]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Orders && $endpoints['/wc/v4/taxes'][3]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\Orders ) { $endpoints['/wc/v4/taxes'][0] = $endpoints['/wc/v4/taxes'][2]; $endpoints['/wc/v4/taxes'][1] = $endpoints['/wc/v4/taxes'][3]; } // Override /wc/v4/settings/$group_id. if ( isset( $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'] ) && isset( $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][5] ) && isset( $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][4] ) && isset( $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][3] ) && $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][3]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\SettingOptions && $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][4]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\SettingOptions && $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][5]['callback'][0] instanceof \Automattic\WooCommerce\Admin\API\SettingOptions ) { $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][0] = $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][3]; $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][1] = $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][4]; $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][2] = $endpoints['/wc/v4/settings/(?P<group_id>[\w-]+)'][5]; } return $endpoints; } /** * Adds data stores. * * @param array $data_stores List of data stores. * @return array */ public static function add_data_stores( $data_stores ) { return array_merge( $data_stores, array( 'report-revenue-stats' => 'Automattic\WooCommerce\Admin\API\Reports\Orders\Stats\DataStore', 'report-orders' => 'Automattic\WooCommerce\Admin\API\Reports\Orders\DataStore', 'report-orders-stats' => 'Automattic\WooCommerce\Admin\API\Reports\Orders\Stats\DataStore', 'report-products' => 'Automattic\WooCommerce\Admin\API\Reports\Products\DataStore', 'report-variations' => 'Automattic\WooCommerce\Admin\API\Reports\Variations\DataStore', 'report-products-stats' => 'Automattic\WooCommerce\Admin\API\Reports\Products\Stats\DataStore', 'report-categories' => 'Automattic\WooCommerce\Admin\API\Reports\Categories\DataStore', 'report-taxes' => 'Automattic\WooCommerce\Admin\API\Reports\Taxes\DataStore', 'report-taxes-stats' => 'Automattic\WooCommerce\Admin\API\Reports\Taxes\Stats\DataStore', 'report-coupons' => 'Automattic\WooCommerce\Admin\API\Reports\Coupons\DataStore', 'report-coupons-stats' => 'Automattic\WooCommerce\Admin\API\Reports\Coupons\Stats\DataStore', 'report-downloads' => 'Automattic\WooCommerce\Admin\API\Reports\Downloads\DataStore', 'report-downloads-stats' => 'Automattic\WooCommerce\Admin\API\Reports\Downloads\Stats\DataStore', 'admin-note' => 'Automattic\WooCommerce\Admin\Notes\DataStore', 'report-customers' => 'Automattic\WooCommerce\Admin\API\Reports\Customers\DataStore', 'report-customers-stats' => 'Automattic\WooCommerce\Admin\API\Reports\Customers\Stats\DataStore', 'report-stock-stats' => 'Automattic\WooCommerce\Admin\API\Reports\Stock\Stats\DataStore', ) ); } /** * Add the currency symbol (in addition to currency code) to each Order * object in REST API responses. For use in formatCurrency(). * * @param {WP_REST_Response} $response REST response object. * @returns {WP_REST_Response} */ public static function add_currency_symbol_to_order_response( $response ) { $response_data = $response->get_data(); $currency_code = $response_data['currency']; $currency_symbol = get_woocommerce_currency_symbol( $currency_code ); $response_data['currency_symbol'] = html_entity_decode( $currency_symbol ); $response->set_data( $response_data ); return $response; } }