cart ); $cart_has_contents = $cart_exists && ! WC()->cart->is_empty(); if ( $cart_exists ) { $cart_response = Package::container()->get( Hydration::class )->get_rest_api_response_data( '/wc/store/v1/cart' ); self::$blocks_shared_cart_state = $cart_response['body'] ?? array(); } else { self::$blocks_shared_cart_state = array(); } if ( $cart_has_contents ) { self::prevent_cache(); } wp_interactivity_state( 'woocommerce', array( 'cart' => self::$blocks_shared_cart_state, 'nonce' => wp_create_nonce( 'wc_store_api' ), 'noticeId' => '', 'restUrl' => get_rest_url(), ) ); } } /** * Get core data to include in settings. * * @return array */ private static function get_core_data(): array { return array( 'isBlockTheme' => wp_is_block_theme(), ); } /** * Get currency data to include in settings. * * @return array */ private static function get_currency_data(): array { $currency = get_woocommerce_currency(); return array( 'currency' => array( 'code' => $currency, 'precision' => wc_get_price_decimals(), 'symbol' => html_entity_decode( get_woocommerce_currency_symbol( $currency ) ), 'symbolPosition' => get_option( 'woocommerce_currency_pos' ), 'decimalSeparator' => wc_get_price_decimal_separator(), 'thousandSeparator' => wc_get_price_thousand_separator(), 'priceFormat' => html_entity_decode( get_woocommerce_price_format() ), ), ); } /** * Get locale data to include in settings. * * @return array */ private static function get_locale_data(): array { global $wp_locale; return array( 'locale' => array( 'siteLocale' => get_locale(), 'userLocale' => get_user_locale(), 'weekdaysShort' => array_values( $wp_locale->weekday_abbrev ), ), ); } /** * Load placeholder image into interactivity config. * * @param string $consent_statement The consent statement string. * @return void * @throws InvalidArgumentException If consent statement doesn't match. */ public static function load_placeholder_image( string $consent_statement ): void { self::check_consent( $consent_statement ); wp_interactivity_config( self::$settings_namespace, array( 'placeholderImgSrc' => wc_placeholder_img_src() ) ); } }