root_rendered || ! $this->should_render_root() ) { return; } $this->root_rendered = true; echo '
'; } public function render_mount_root_fallback(): void { $this->render_mount_root(); } public function print_runtime_settings(): void { if ( ! AddToCartContext::should_render_runtime() ) { return; } $payload = [ 'enabled' => true, 'ajaxUrl' => \WC_AJAX::get_endpoint( 'ipscmi_order_cart_add_to_cart' ), 'pageSurface' => SidecartExpressSurfacePolicy::current_surface(), 'loopButtonSelector' => 'a.add_to_cart_button', 'singleFormSelector' => 'form.cart', 'noticeWrapperClass' => 'ipscmi-order-cart-sidecart-inline-notices', 'handledQueryArgs' => AddToCartContext::get_handled_query_args(), 'cartgatePrecheck' => CartgatePrecheckRuntimeBuilder::build_payload(), ]; wp_add_inline_script( 'ipscmi-order-cart-front-react', 'window.ipscmiOrderCartAddToCartReactData=' . wp_json_encode( $payload, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT ) . ';', 'before' ); } private function should_render_root(): bool { return AddToCartContext::should_render_runtime(); } private function is_enabled(): bool { return AddToCartContext::is_enabled(); } public function prevent_cart_redirect( $value ) { if ( ! AddToCartContext::should_prevent_native_redirects() ) { return $value; } return 'no'; } public function prevent_add_to_cart_redirect( $redirect_url ) { if ( ! AddToCartContext::should_prevent_native_redirects() ) { return $redirect_url; } if ( isset( $_POST['pi_quick_checkout'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing return $redirect_url; } return false; } /** * @param array