{"id":31428,"date":"2026-09-04T06:44:40","date_gmt":"2026-09-04T06:44:40","guid":{"rendered":"https:\/\/dnddemo.com\/shopqjs\/ring-customizer\/"},"modified":"2026-09-04T07:14:58","modified_gmt":"2026-09-04T07:14:58","slug":"bespoke-jewelry","status":"publish","type":"page","link":"https:\/\/dnddemo.com\/shopqjs\/bespoke-jewelry\/","title":{"rendered":"Bespoke Jewelry"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"31428\" class=\"elementor elementor-31428\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-303688cb e-flex e-con-boxed e-con e-parent\" data-id=\"303688cb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-697cbd6a color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"697cbd6a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><style>\n            .kijs-configurator-shell{\n                position:relative;\n                width:100%;\n                min-height:100dvh;\n                overflow:hidden;\n                isolation:isolate;\n                z-index:1;\n            }\n            .kijs-configurator-frame{\n                display:block;\n                width:100%;\n                min-height:100dvh;\n                border:0;\n                background:#fff;\n            }\n            @supports not (height: 100dvh){\n                .kijs-configurator-shell,\n                .kijs-configurator-frame{\n                    min-height:100vh;\n                }\n            }\n        <\/style><div class=\"kijs-configurator-shell\">\n            <iframe\n                id=\"kijs-configurator-frame\"\n                class=\"kijs-configurator-frame\"\n                src=\"https:\/\/keyideas-ring-configurator-rb.projects.apps.keyideasglobal.com\/?kijs_token=9e59eb7393&#038;site=https:\/\/dnddemo.com\/shopqjs\"\n                title=\"Jewelry Configurator\"\n                loading=\"lazy\"\n                referrerpolicy=\"strict-origin\"\n                sandbox=\"allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts allow-top-navigation-by-user-activation\"\n                allow=\"fullscreen; clipboard-read; clipboard-write\">\n            <\/iframe>\n        <\/div><script>\n            window.KIJSBridgeConfig = {\"ajaxUrl\":\"https:\\\/\\\/dnddemo.com\\\/shopqjs\\\/wp-admin\\\/admin-ajax.php\",\"nonce\":\"3246d29c6d\",\"origin\":\"https:\\\/\\\/keyideas-ring-configurator-rb.projects.apps.keyideasglobal.com\",\"parentUrl\":\"\"};\n            (function () {\n                if (window.__kijsBridgeInitialized) {\n                    return;\n                }\n                window.__kijsBridgeInitialized = true;\n\n                var bridge = window.KIJSBridgeConfig || {};\n                var pending = false;\n                var bridgeReady = false;\n\n                function getBridgeFrame() {\n                    return document.getElementById(\"kijs-configurator-frame\")\n                        || document.getElementById(\"kijs-necklace-configurator-frame\");\n                }\n\n                function postParentUrl() {\n                    var frame = getBridgeFrame();\n                    if (!frame || !frame.contentWindow) {\n                        return;\n                    }\n\n                    try {\n                        frame.contentWindow.postMessage({\n                            parentUrl: bridge.parentUrl || window.location.href,\n                            site: window.location.origin,\n                            platform: \"woocommerce\"\n                        }, \"*\");\n                        bridgeReady = true;\n                    } catch (error) {\n                        console.warn(\"KIJS parentUrl postMessage failed\", error);\n                    }\n                }\n\n                function bindFrameLoad() {\n                    var frame = getBridgeFrame();\n                    if (!frame) {\n                        return false;\n                    }\n\n                    frame.addEventListener(\"load\", function () {\n                        postParentUrl();\n                        window.setTimeout(postParentUrl, 1000);\n                    });\n\n                    return true;\n                }\n\n                async function handleAddToCart(payload) {\n                    if (pending) {\n                        return;\n                    }\n\n                    pending = true;\n\n                    try {\n                        var response = await fetch(bridge.ajaxUrl, {\n                            method: \"POST\",\n                            credentials: \"same-origin\",\n                            headers: {\n                                \"Content-Type\": \"application\/x-www-form-urlencoded; charset=UTF-8\"\n                            },\n                            body: new URLSearchParams({\n                                action: \"kijs_add_to_cart\",\n                                nonce: bridge.nonce,\n                                payload: JSON.stringify(payload || {})\n                            }).toString()\n                        });\n\n                        var result = await response.json();\n                        if (!response.ok || !result || !result.success) {\n                            throw new Error(result && result.data && result.data.message ? result.data.message : \"Add to cart failed.\");\n                        }\n\n                        window.top.location.href = result.data.cartUrl;\n                    } catch (error) {\n                        pending = false;\n                        console.error(\"KIJS WordPress add to cart failed\", error);\n                        window.alert(error && error.message ? error.message : \"Add to cart failed.\");\n                    }\n                }\n\n                window.addEventListener(\"message\", function (event) {\n                    if (!event || event.origin !== bridge.origin || !event.data || event.data.type !== \"ADD_TO_CART\") {\n                        return;\n                    }\n\n                    handleAddToCart(event.data);\n                });\n\n                if (!bindFrameLoad()) {\n                    document.addEventListener(\"DOMContentLoaded\", function () {\n                        bindFrameLoad();\n                        postParentUrl();\n                    });\n                }\n\n                window.addEventListener(\"load\", function () {\n                    if (!bridgeReady) {\n                        postParentUrl();\n                    }\n                });\n            })();\n        <\/script><\/p>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","footnotes":""},"class_list":["post-31428","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dnddemo.com\/shopqjs\/wp-json\/wp\/v2\/pages\/31428","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dnddemo.com\/shopqjs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dnddemo.com\/shopqjs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dnddemo.com\/shopqjs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dnddemo.com\/shopqjs\/wp-json\/wp\/v2\/comments?post=31428"}],"version-history":[{"count":8,"href":"https:\/\/dnddemo.com\/shopqjs\/wp-json\/wp\/v2\/pages\/31428\/revisions"}],"predecessor-version":[{"id":31452,"href":"https:\/\/dnddemo.com\/shopqjs\/wp-json\/wp\/v2\/pages\/31428\/revisions\/31452"}],"wp:attachment":[{"href":"https:\/\/dnddemo.com\/shopqjs\/wp-json\/wp\/v2\/media?parent=31428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}