From a0e01b805ebd5c7a2977648f0ff00f61e347bdd6 Mon Sep 17 00:00:00 2001 From: jczhuoMeta <134329391+jczhuoMeta@users.noreply.github.com> Date: Wed, 5 Mar 2025 16:26:33 -0800 Subject: [PATCH] Update some params for the MiCE usecase --- includes/Handlers/Connection.php | 2 +- includes/Handlers/MetaExtension.php | 16 ++++++++-------- tests/Unit/Handlers/MetaExtensionTest.php | 3 ++- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/includes/Handlers/Connection.php b/includes/Handlers/Connection.php index d7acdc36b..5b137fa7b 100644 --- a/includes/Handlers/Connection.php +++ b/includes/Handlers/Connection.php @@ -955,7 +955,7 @@ private function get_connect_parameters_extras() { * * @return string */ - private function get_timezone_string() { + public function get_timezone_string() { $timezone = wc_timezone_string(); // convert +05:30 and +05:00 into Etc/GMT+5 - we ignore the minutes because Facebook does not allow minute offsets if ( preg_match( '/([+-])(\d{2}):\d{2}/', $timezone, $matches ) ) { diff --git a/includes/Handlers/MetaExtension.php b/includes/Handlers/MetaExtension.php index f57544897..7b075931f 100644 --- a/includes/Handlers/MetaExtension.php +++ b/includes/Handlers/MetaExtension.php @@ -25,13 +25,11 @@ class MetaExtension { /** @var string Client token */ - const CLIENT_TOKEN = '195311308289826|52dcd04d6c7ed113121b5eb4be23b4a7'; + const CLIENT_TOKEN = '474166926521348|92e978eb27baf47f9df578b48d430a2e'; const APP_ID = '474166926521348'; - /** @var string Business name */ - const BUSINESS_NAME = 'WooCommerce'; /** @var string API version */ - const API_VERSION = 'v18.0'; + const API_VERSION = 'v22.0'; /** @var string Commerce Hub base URL */ const COMMERCE_HUB_URL = 'https://www.commercepartnerhub.com/'; @@ -422,13 +420,15 @@ public static function rest_handle_uninstall() { * @param string $external_business_id External business ID. * @return string */ - public static function generate_iframe_splash_url( $is_connected, $plugin, $external_business_id ) { + public static function generate_iframe_splash_url( $is_connected, $plugin, $external_business_id ): string { + $connection_handler = facebook_for_woocommerce()->get_connection_handler(); $external_client_metadata = array( - 'shop_domain' => wc_get_page_permalink( 'shop' ) ? wc_get_page_permalink( 'shop' ) : \home_url(), + 'shop_domain' => wc_get_page_permalink( 'shop' ), 'admin_url' => admin_url(), 'client_version' => $plugin->get_version(), 'commerce_partner_seller_platform_type' => 'SELF_SERVE_PLATFORM', 'country_code' => WC()->countries->get_base_country(), + 'platform_store_id' => get_current_blog_id(), ); return add_query_arg( array( @@ -436,9 +436,9 @@ public static function generate_iframe_splash_url( $is_connected, $plugin, $exte 'business_vertical' => 'ECOMMERCE', 'channel' => 'COMMERCE', 'app_id' => Connection::CLIENT_ID, - 'business_name' => self::BUSINESS_NAME, + 'business_name' => rawurlencode( $connection_handler->get_business_name() ), 'currency' => get_woocommerce_currency(), - 'timezone' => 'America/Los_Angeles', + 'timezone' => $connection_handler->get_timezone_string(), 'external_business_id' => $external_business_id, 'installed' => $is_connected, 'external_client_metadata' => rawurlencode( wp_json_encode( $external_client_metadata ) ), diff --git a/tests/Unit/Handlers/MetaExtensionTest.php b/tests/Unit/Handlers/MetaExtensionTest.php index bae011bef..6f8dfef6c 100644 --- a/tests/Unit/Handlers/MetaExtensionTest.php +++ b/tests/Unit/Handlers/MetaExtensionTest.php @@ -38,11 +38,12 @@ public function test_generate_iframe_splash_url() { $plugin = facebook_for_woocommerce(); $url = MetaExtension::generate_iframe_splash_url(true, $plugin, 'test_business_id'); + $handler = facebook_for_woocommerce()->get_connection_handler(); // Assert URL contains expected parameters $this->assertStringContainsString('access_client_token=' . MetaExtension::CLIENT_TOKEN, $url); $this->assertStringContainsString('app_id=', $url); - $this->assertStringContainsString('business_name=' . urlencode(MetaExtension::BUSINESS_NAME), $url); + $this->assertStringContainsString('business_name=' . rawurlencode($handler->get_business_name()), $url); $this->assertStringContainsString('external_business_id=test_business_id', $url); $this->assertStringContainsString('installed=1', $url); $this->assertStringContainsString('external_client_metadata=', $url);