can_use_builder_widgets()) { return false; } // In editor mode editing my_account template if (class_exists('King_Addons\\Woo_Builder\\Context') && Woo_Context::is_editing_template_type('my_account')) { return true; } // On actual my account page if (function_exists('is_account_page') && is_account_page()) { return true; } return false; } /** * Whether this request is the given My Account endpoint. * * An empty endpoint means the account dashboard (no WooCommerce endpoint * query var). The Elementor editor always returns true so every widget * on the template stays visible while designing. * * @param string $endpoint WooCommerce endpoint slug, or '' for dashboard. * * @return bool */ protected function is_current_endpoint(string $endpoint = ''): bool { if (class_exists('King_Addons\\Woo_Builder\\Context') && (Woo_Context::is_editing_template_type('my_account') || Woo_Context::is_editor())) { return true; } if (!function_exists('is_wc_endpoint_url')) { return '' === $endpoint; } if ('' === $endpoint) { return !is_wc_endpoint_url(); } return is_wc_endpoint_url($endpoint); } /** * Cart / checkout / account builder widgets are a Pro feature. * * @return bool */ protected function can_use_builder_widgets(): bool { return function_exists('king_addons_can_use_pro') && king_addons_can_use_pro(); } /** * Render placeholder when my account context is missing. * * @return void */ protected function render_missing_account_notice(): void { if (!class_exists('\Elementor\Plugin') || !\Elementor\Plugin::$instance->editor->is_edit_mode()) { return; } if (!$this->can_use_builder_widgets()) { $this->render_pro_required_notice(); return; } // Check if we're editing a My Account template if (class_exists('King_Addons\\Woo_Builder\\Context') && Woo_Context::is_editing_template_type('my_account')) { // Don't show notice - we're in the right template type return; } echo '