{"id":1503,"date":"2026-04-10T16:27:20","date_gmt":"2026-04-10T16:27:20","guid":{"rendered":"https:\/\/entrenacalculo.com\/?page_id=1503"},"modified":"2026-04-10T22:06:30","modified_gmt":"2026-04-10T22:06:30","slug":"planes","status":"publish","type":"page","link":"https:\/\/entrenacalculo.com\/en\/planes\/","title":{"rendered":"Plans \/ Pricing"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1503\" class=\"elementor elementor-1503\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6b07504 e-flex e-con-boxed e-con e-parent\" data-id=\"6b07504\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-cc3be80 e-con-full e-flex e-con e-child\" data-id=\"cc3be80\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c56de7 elementor-widget elementor-widget-html\" data-id=\"9c56de7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"border: 2px solid #e0e0e0; border-radius: 15px; padding: 30px; text-align: center; font-family: Sans-serif; background-color: #ffffff; box-shadow: 0px 4px 10px rgba(0,0,0,0.05);\">\r\n    \r\n    <h3 style=\"color: #333; margin-bottom: 10px; font-size: 24px;\">PLAN EXPLORADOR<\/h3>\r\n    <div style=\"font-size: 36px; font-weight: bold; color: #1fb381; margin-bottom: 20px;\">0 USD<span style=\"font-size: 16px; color: #777;\">\/mes<\/span><\/div>\r\n    \r\n    <ul style=\"text-align: left; list-style: none; padding: 0; margin-bottom: 30px; color: #555; line-height: 2;\">\r\n        <li>\u2705 Tablas de Multiplicar (1 al 5)<\/li>\r\n        <li>\u2705 Tablas de Divisi\u00f3n (1 al 5)<\/li>\r\n        <li>\u2705 Familias Num\u00e9ricas (1 al 5)<\/li>\r\n        <li>\u2705 Tablas de Suma completas<\/li>\r\n        <li>\u2705 Acceso inmediato<\/li>\r\n    <\/ul>\r\n\r\n    <a href=\"https:\/\/entrenacalculo.com\/registro\/?level=2\" style=\"display: block; background-color: #1fb381; color: white; padding: 12px 25px; text-decoration: none; border-radius: 50px; font-weight: bold; transition: 0.3s;\">\r\n        EMPEZAR GRATIS\r\n    <\/a>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8cf8845 e-con-full e-flex e-con e-child\" data-id=\"8cf8845\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-77d39da elementor-widget elementor-widget-html\" data-id=\"77d39da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"border: 3px solid #004a99; border-radius: 15px; padding: 30px; text-align: center; font-family: Sans-serif; background-color: #f9fbff; box-shadow: 0px 8px 20px rgba(0,74,153,0.15); position: relative;\">\r\n    \r\n    <div style=\"position: absolute; top: -15px; left: 50%; transform: translateX(-50%); background: #ffcc00; color: #000; padding: 5px 20px; border-radius: 20px; font-weight: bold; font-size: 14px;\">M\u00c1S POPULAR<\/div>\r\n\r\n    <h3 style=\"color: #004a99; margin-bottom: 10px; font-size: 24px;\">PLAN PRO<\/h3>\r\n    <div style=\"font-size: 32px; font-weight: bold; color: #333; margin-bottom: 20px;\">10 USD<span style=\"font-size: 16px; color: #777;\">\/mes<\/span><\/div>\r\n    \r\n    <ul style=\"text-align: left; list-style: none; padding: 0; margin-bottom: 30px; color: #444; line-height: 1.6; font-size: 15px;\">\r\n        <li>\u2b50 <b>Todo lo del Plan Explorador m\u00e1s:<\/b><\/li>\r\n        <li>\u2705 Tablas Multiplicar (6 al 10 + Mixtas)<\/li>\r\n        <li>\u2705 Tablas Divisi\u00f3n (6 al 10 + Mixtas)<\/li>\r\n        <li>\u2705 Familias Num\u00e9ricas (6 al 10)<\/li>\r\n        <li>\u2705 Resta: Naturales y Enteros<\/li>\r\n        <li>\u2705 Restas con par\u00e9ntesis<\/li>\r\n        <li>\u2705 <b>Nivel \u00c9lite:<\/b> 4 Operaciones combinadas<\/li>\r\n        <li>\ud83d\ude80 Acceso total sin restricciones<\/li>\r\n    <\/ul>\r\n\r\n    <div id=\"boton-pago-pro\">\r\n        <p style=\"color: #666; font-style: italic; font-size: 13px;\"><div class=\"swpm-payment-button\">    <div id=\"swpm-button-wrapper-1519\" class=\"swpm-button-wrapper swpm-paypal-buy-now-button-wrapper\">\n\n    <!-- PayPal button container where the button will be rendered -->\n    <div id=\"swpm_paypal_button_0\" style=\"width: 300px;\"><\/div>\n    <!-- Some additiona hidden input fields -->\n    <input type=\"hidden\" id=\"swpm_paypal_button_0-custom-field\" name=\"custom\" value=\"subsc_ref=3&amp;user_ip=216.73.216.34\">\n\n    <script type=\"text\/javascript\">\n        document.addEventListener( \"swpm_paypal_sdk_loaded\", function() { \n            \/\/Anything that goes here will only be executed after the PayPal SDK is loaded.\n            console.log('PayPal JS SDK is loaded.');\n\n            var js_currency_code = 'USD';\n            var js_payment_amount = 10;\n            var js_quantity = 1;\n            var js_digital_goods_enabled = 1;\n\n            const paypalButtonsComponent = paypal.Buttons({\n                \/\/ optional styling for buttons\n                \/\/ https:\/\/developer.paypal.com\/docs\/checkout\/standard\/customize\/buttons-style-guide\/\n                style: {\n                    color: 'blue',\n                    shape: 'rect',\n                    height: 35,\n                    label: 'buynow',\n                    layout: 'vertical',\n                },\n\n                \/\/ Setup the transaction.\n                createOrder: async function() {\n                    \/\/ Create the order in PayPal using the PayPal API.\n                    \/\/ https:\/\/developer.paypal.com\/docs\/checkout\/standard\/integrate\/\n                    \/\/ The server-side Create Order API is used to generate the Order. Then the Order-ID is returned.                    \n                    console.log('Setting up the AJAX request for create-order call.');\n                    let pp_bn_data = {};\n                    pp_bn_data.button_id = '1519';\n                    pp_bn_data.on_page_button_id = 'swpm_paypal_button_0';\n                    pp_bn_data.item_name = 'Pago Plan Pro';\n                    let post_data = 'action=swpm_pp_create_order&data=' + JSON.stringify(pp_bn_data) + '&_wpnonce=2ff1b4bbca';\n                    try {\n                        \/\/ Using fetch for AJAX request. This is supported in all modern browsers.\n                        const response = await fetch(\"https:\/\/entrenacalculo.com\/wp-admin\/admin-ajax.php\", {\n                            method: \"post\",\n                            headers: {\n                                'Content-Type': 'application\/x-www-form-urlencoded'\n                            },\n                            body: post_data\n                        });\n\n                        const response_data = await response.json();\n\n                        if (response_data.order_id) {\n                            console.log('Create-order API call to PayPal completed successfully.');\n                            \/\/If we need to see the order details, uncomment the following line.\n                            \/\/const order_data = response_data.order_data;\n                            \/\/console.log('Order data: ' + JSON.stringify(order_data));\n                            return response_data.order_id;\n                        } else {\n                            const error_message = JSON.stringify(response_data);\n                            console.error('Error occurred during the create-order API call to PayPal. ' + error_message);\n                            throw new Error(error_message);\n                        }\n                    } catch (error) {\n                        console.error(error);\n                        alert('Could not initiate PayPal Checkout...\\n\\n' + JSON.stringify(error));\n                    }\n                },\n    \n                \/\/ handle the onApprove event\n                onApprove: async function(data, actions) {\n                    console.log('Successfully created a transaction.');\n\n                    \/\/Show the spinner while we process this transaction.\n                    const pp_button_container = document.getElementById('swpm_paypal_button_0');\n                    const pp_button_container_wrapper = document.getElementById('swpm-button-wrapper-1519');\n                    const pp_button_spinner_container = pp_button_container_wrapper.querySelector('.swpm-pp-button-spinner-container');\n                    pp_button_container.style.display = 'none'; \/\/Hide the buttons\n                    pp_button_spinner_container.style.display = 'inline-block'; \/\/Show the spinner.\n\n                    \/\/ Capture the order in PayPal using the PayPal API.\n                    \/\/ https:\/\/developer.paypal.com\/docs\/checkout\/standard\/integrate\/\n                    \/\/ The server-side capture-order API is used. Then the Capture-ID is returned.\n                    console.log('Setting up the AJAX request for capture-order call.');\n                    let pp_bn_data = {};\n                    pp_bn_data.order_id = data.orderID;\n                    pp_bn_data.button_id = '1519';\n                    pp_bn_data.on_page_button_id = 'swpm_paypal_button_0';\n                    pp_bn_data.item_name = 'Pago Plan Pro';\n\n                    \/\/Add custom_field data. It is important to encode the custom_field data so it doesn't mess up the data with & character.\n                    const custom_data = document.getElementById('swpm_paypal_button_0-custom-field').value;\n                    pp_bn_data.custom_field = encodeURIComponent(custom_data);\n                    \n                    const post_data = new URLSearchParams({\n                        action: 'swpm_pp_capture_order',\n                        data: JSON.stringify(pp_bn_data),\n                        _wpnonce: '2ff1b4bbca',\n                    }).toString();\n                    \n                    try {\n                        const response = await fetch(\"https:\/\/entrenacalculo.com\/wp-admin\/admin-ajax.php\", {\n                            method: \"post\",\n                            headers: {\n                                'Content-Type': 'application\/x-www-form-urlencoded'\n                            },\n                            body: post_data\n                        });\n\n                        const response_data = await response.json();\n                        const txn_data = response_data.txn_data;\n                        const error_detail = txn_data?.details?.[0];\n                        const error_msg = response_data.error_msg;\/\/Our custom error message.\n                        \/\/ Three cases to handle:\n                        \/\/ (1) Recoverable INSTRUMENT_DECLINED -> call actions.restart()\n                        \/\/ (2) Other non-recoverable errors -> Show a failure message\n                        \/\/ (3) Successful transaction -> Show confirmation or thank you message\n\n                        if (response_data.capture_id) {\n                            \/\/ Successful transaction -> Show confirmation or thank you message\n                            console.log('Capture-order API call to PayPal completed successfully.');\n\n                            \/\/Redirect to the Thank you page or Registration page URL if it is set.\n                            const return_url = response_data.redirect_url || '';\n                            if( return_url ){\n                                \/\/redirect to the URL.\n                                console.log('Redirecting to the Thank you page URL: ' + return_url);\n                                window.location.href = return_url;\n                                return;\n                            } else {\n                                \/\/No return URL is set. Just show a success message.\n                                \/\/Important Note: any alert message will block the normal PayPal popup window flow. So we want to show the message on the page instead of using alert.\n                                txn_success_msg = 'Transaction completed successfully!';\n                                const swpm_btn_wrapper_div = document.getElementById('swpm-button-wrapper-1519');\n                                if (swpm_btn_wrapper_div) {\n                                    \/\/ Remove any previous message if it exists\n                                    const old_msg_div = swpm_btn_wrapper_div.querySelector('.swpm-ppcp-txn-success-message');\n                                    if (old_msg_div) old_msg_div.remove();\n\n                                    \/\/ Create new message div\n                                    const new_msg_div = document.createElement('div');\n                                    new_msg_div.className = 'swpm-ppcp-txn-success-message';\n                                    new_msg_div.textContent = txn_success_msg;\n\n                                    \/\/Insert the message div before the button.\n                                    const firstChild = swpm_btn_wrapper_div.firstChild;\n                                    swpm_btn_wrapper_div.insertBefore(new_msg_div, firstChild);\n                                }\n                            }\n\n                        } else if (error_detail?.issue === \"INSTRUMENT_DECLINED\") {\n                            \/\/ Recoverable INSTRUMENT_DECLINED -> call actions.restart()\n                            console.log('Recoverable INSTRUMENT_DECLINED error. Calling actions.restart()');\n                            return actions.restart();\n                        } else if ( error_msg && error_msg.trim() !== '' ) {\n                            \/\/Our custom error message from the server.\n                            console.error('Error occurred during PayPal checkout process.');\n                            console.error( error_msg );\n                            alert( error_msg );\n                        } else {\n                            \/\/ Other non-recoverable errors -> Show a failure message\n                            console.error('Non-recoverable error occurred during PayPal checkout process.');\n                            console.error( error_detail );\n                            \/\/alert('Error occurred with the transaction. Enable debug logging to get more details.\\n\\n' + JSON.stringify(error_detail));\n                        }\n\n                        \/\/Return the button and the spinner back to their orignal display state.\n                        pp_button_container.style.display = 'block'; \/\/ Show the buttons\n                        pp_button_spinner_container.style.display = 'none'; \/\/ Hide the spinner\n\n                    } catch (error) {\n                        console.error(error);\n                        alert('PayPal returned an error! Transaction could not be processed. Enable the debug logging feature to get more details...\\n\\n' + JSON.stringify(error));\n                    }\n                },\n    \n                \/\/ handle unrecoverable errors\n                onError: function(err) {\n                    console.error('An error prevented the user from checking out with PayPal. ' + JSON.stringify(err));\n                    alert( 'Error occurred during PayPal checkout process.\\n\\n' + JSON.stringify(err) );\n                },\n\n                \/\/ handle onCancel event\n                onCancel: function(data) {\n                    console.log('Checkout operation cancelled by the customer.');\n                    \/\/Return to the parent page which the button does by default.\n                }\n            });\n    \n            paypalButtonsComponent\n                .render('#swpm_paypal_button_0')\n                .catch((err) => {\n                    console.error('PayPal Buttons failed to render');\n                });\n\n        });\n    <\/script>\n    <style>\n        @keyframes swpm-pp-button-spinner {\n            to {transform: rotate(360deg);}\n        }\n        .swpm-pp-button-spinner {\n            margin: 0 auto;\n            text-indent: -9999px;\n            vertical-align: middle;\n            box-sizing: border-box;\n            position: relative;\n            width: 60px;\n            height: 60px;\n            border-radius: 50%;\n            border: 5px solid #ccc;\n            border-top-color: #0070ba;\n            animation: swpm-pp-button-spinner .6s linear infinite;\n        }\n        .swpm-pp-button-spinner-container {\n            width: 100%;\n            text-align: center;\n            margin-top:10px;\n            display: none;\n        }\n    <\/style>\n    <div class=\"swpm-pp-button-spinner-container\">\n        <div class=\"swpm-pp-button-spinner\"><\/div>\n    <\/div>\n    <\/div><!-- end of .swpm-button-wrapper -->\n    <\/div><\/p>\r\n    <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\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":"<p>PLAN EXPLORADOR 0 USD\/mes \u2705 Tablas de Multiplicar (1 al 5) \u2705 Tablas de Divisi\u00f3n (1 al 5) \u2705 Familias Num\u00e9ricas (1 al 5) \u2705 Tablas de Suma completas \u2705 Acceso inmediato EMPEZAR GRATIS M\u00c1S POPULAR PLAN PRO 10 USD\/mes \u2b50 Todo lo del Plan Explorador m\u00e1s: \u2705 Tablas Multiplicar (6 al 10 + Mixtas) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1503","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/entrenacalculo.com\/en\/wp-json\/wp\/v2\/pages\/1503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/entrenacalculo.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/entrenacalculo.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/entrenacalculo.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/entrenacalculo.com\/en\/wp-json\/wp\/v2\/comments?post=1503"}],"version-history":[{"count":16,"href":"https:\/\/entrenacalculo.com\/en\/wp-json\/wp\/v2\/pages\/1503\/revisions"}],"predecessor-version":[{"id":1530,"href":"https:\/\/entrenacalculo.com\/en\/wp-json\/wp\/v2\/pages\/1503\/revisions\/1530"}],"wp:attachment":[{"href":"https:\/\/entrenacalculo.com\/en\/wp-json\/wp\/v2\/media?parent=1503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}