{"id":22109,"date":"2025-10-26T16:08:36","date_gmt":"2025-10-26T21:08:36","guid":{"rendered":"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/"},"modified":"2025-11-01T16:19:48","modified_gmt":"2025-11-01T21:19:48","slug":"membership-join","status":"publish","type":"page","link":"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/","title":{"rendered":"Join Us"},"content":{"rendered":"<p style=\"font-weight: bold;\"><a href=\"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-content\/uploads\/2019\/10\/MHMVerySmallSigLogo-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-21871 aligncenter\" src=\"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-content\/uploads\/2019\/10\/MHMVerySmallSigLogo-1.jpg\" alt=\"\" width=\"104\" height=\"104\"><\/a>Welcome to our exclusive membership program!&nbsp; As a member you will have access to a range of benefits.&nbsp; We offer several membership tiers for you to select from.&nbsp; Each level will provide different levels of access to our award-winning content.<\/p>\n<p><strong>You can register and pay for one of the following membership options:<\/strong><\/p>\n<p>Gold Membership ($3.00\/3-months) &#8211; All website content and Pro\/NHL and DI Men\/Women:<br \/>\n<div class=\"swpm-payment-button\">    <div id=\"swpm-button-wrapper-22115\" class=\"swpm-button-wrapper swpm-paypal-subscription-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=2&amp;user_ip=10.9.11.160\">\n\n    <script type=\"text\/javascript\">\n        document.addEventListener( \"swpm_paypal_sdk_subscriptions_loaded\", function() { \n            \/\/Anything that goes here will only be executed after the PayPal SDK is loaded.\n\n            const paypalSubButtonsComponent = swpm_paypal_subscriptions.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: 'pill',\n                    height: 25,\n                    label: 'paypal',\n                    layout: 'vertical',\n                },\n    \n                \/\/ Handle the createSubscription call\n                createSubscription: async function(data, actions) {\n                    \/\/ console.log('createSubscription call triggered. Data: ' + JSON.stringify(data));\n\n                    \/\/We will send ajax request that will create the subscription from the server side using PayPal API.\n                    let pp_sub_bn_data = {};\n                    pp_sub_bn_data.button_id = '22115';\n                    pp_sub_bn_data.on_page_button_id = 'swpm_paypal_button_0';\n                    pp_sub_bn_data.item_name = 'Gold Membership Payment';\n                    let post_data = 'action=swpm_pp_create_subscription&data=' + JSON.stringify(pp_sub_bn_data) + '&_wpnonce=eb61245318';\n                    try {\n                        \/\/ Using fetch for AJAX request. This is supported in all modern browsers.\n                        const response = await fetch(\"http:\/\/tiffanymediacompany.com\/mhmdev\/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.subscription_id) {\n                            console.log('Create-subscription API call to PayPal completed successfully.');\n                            \/\/If we need to see the details, uncomment the following line.\n                            \/\/console.log('Order data: ' + JSON.stringify(response_data.sub_data));\n\n                            \/\/Return the subscription ID.\n                            return response_data.subscription_id;\n                        } else {\n                            const error_message = JSON.stringify(response_data);\n                            console.error('Error occurred during the create-subscription 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 subscription...\\n\\n' + JSON.stringify(error));\n                    }\n                },\n    \n                \/\/ Notify the buyer that the subscription is successful\n                onApprove: function(data, actions) {\n                    console.log('Successfully created a subscription.');\n                    \/\/console.log(JSON.stringify(data));\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-22115');\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                    \/\/Get the subscription details and send AJAX request to process the transaction.\n                    actions.subscription.get().then( async function( txn_data ) {\n                        \/\/console.log( 'Subscription details: ' + JSON.stringify( txn_data ) );\n\n                        \/\/Ajax request to process the transaction. This will process it similar to how an IPN request is handled.\n                        const custom = document.getElementById('swpm_paypal_button_0-custom-field').value;\n                        data.custom_field = custom;\n                        data.button_id = '22115';\n                        data.on_page_button_id = 'swpm_paypal_button_0';\n                        data.item_name = 'Gold Membership Payment';\n\n                        const post_data = new URLSearchParams({\n                            action: 'swpm_onapprove_process_subscription',\n                            data: JSON.stringify(data),\n                            txn_data: JSON.stringify(txn_data),\n                            _wpnonce: 'eb61245318',\n                        }).toString();\n\n                        try {\n                            const requestUrl = \"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-admin\/admin-ajax.php\";\n                            const resp = await fetch( requestUrl, {\n                                method: \"post\",\n                                headers: {\n                                    'Content-Type': 'application\/x-www-form-urlencoded'\n                                },\n                                body: post_data\n                            });\n\n                            const response = await resp.json();\n\n                            \/\/console.log( 'Response from the server: ' + JSON.stringify( response ) );\n                            if ( response.success ) {\n\n                                \/\/Redirect to the Thank you page or Registration page URL if it is set.\n                                const return_url = response.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                                }\n\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-22115');\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                                \/\/ Trigger a event on subscription complete \n                                document.dispatchEvent(new Event('swpm_paypal_subscriptions_complete'));\n                        \n                            } else {\n                                \/\/Error response from the AJAX IPN hanler. Throw error.\n                                throw new Error(response.err_msg);\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                            \/\/ Show the error message.\n                            alert(error.message);\n                            console.error( error.message );\n                        }\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    \n            paypalSubButtonsComponent\n                .render('#swpm_paypal_button_0')\n                .catch((err) => {\n                    console.error('PayPal Buttons failed to render');\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>\n<p style=\"border-bottom: 1px solid #ccc; padding-bottom: 10px; margin-bottom: 10px;\">Silver Membership ($2.00\/3-months) &#8211; Pro\/NHL and DI Men\/Women:<br \/>\n<div class=\"swpm-payment-button\">    <div id=\"swpm-button-wrapper-22116\" class=\"swpm-button-wrapper swpm-paypal-subscription-button-wrapper\">\n\n    <!-- PayPal button container where the button will be rendered -->\n    <div id=\"swpm_paypal_button_1\" style=\"width: 300px;\"><\/div>\n    <!-- Some additiona hidden input fields -->\n    <input type=\"hidden\" id=\"swpm_paypal_button_1-custom-field\" name=\"custom\" value=\"subsc_ref=3&amp;user_ip=10.9.11.160\">\n\n    <script type=\"text\/javascript\">\n        document.addEventListener( \"swpm_paypal_sdk_subscriptions_loaded\", function() { \n            \/\/Anything that goes here will only be executed after the PayPal SDK is loaded.\n\n            const paypalSubButtonsComponent = swpm_paypal_subscriptions.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: 'pill',\n                    height: 25,\n                    label: 'paypal',\n                    layout: 'vertical',\n                },\n    \n                \/\/ Handle the createSubscription call\n                createSubscription: async function(data, actions) {\n                    \/\/ console.log('createSubscription call triggered. Data: ' + JSON.stringify(data));\n\n                    \/\/We will send ajax request that will create the subscription from the server side using PayPal API.\n                    let pp_sub_bn_data = {};\n                    pp_sub_bn_data.button_id = '22116';\n                    pp_sub_bn_data.on_page_button_id = 'swpm_paypal_button_1';\n                    pp_sub_bn_data.item_name = 'Silver Membership Paymment';\n                    let post_data = 'action=swpm_pp_create_subscription&data=' + JSON.stringify(pp_sub_bn_data) + '&_wpnonce=ac5403d40e';\n                    try {\n                        \/\/ Using fetch for AJAX request. This is supported in all modern browsers.\n                        const response = await fetch(\"http:\/\/tiffanymediacompany.com\/mhmdev\/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.subscription_id) {\n                            console.log('Create-subscription API call to PayPal completed successfully.');\n                            \/\/If we need to see the details, uncomment the following line.\n                            \/\/console.log('Order data: ' + JSON.stringify(response_data.sub_data));\n\n                            \/\/Return the subscription ID.\n                            return response_data.subscription_id;\n                        } else {\n                            const error_message = JSON.stringify(response_data);\n                            console.error('Error occurred during the create-subscription 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 subscription...\\n\\n' + JSON.stringify(error));\n                    }\n                },\n    \n                \/\/ Notify the buyer that the subscription is successful\n                onApprove: function(data, actions) {\n                    console.log('Successfully created a subscription.');\n                    \/\/console.log(JSON.stringify(data));\n\n                    \/\/Show the spinner while we process this transaction.\n                    const pp_button_container = document.getElementById('swpm_paypal_button_1');\n                    const pp_button_container_wrapper = document.getElementById('swpm-button-wrapper-22116');\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                    \/\/Get the subscription details and send AJAX request to process the transaction.\n                    actions.subscription.get().then( async function( txn_data ) {\n                        \/\/console.log( 'Subscription details: ' + JSON.stringify( txn_data ) );\n\n                        \/\/Ajax request to process the transaction. This will process it similar to how an IPN request is handled.\n                        const custom = document.getElementById('swpm_paypal_button_1-custom-field').value;\n                        data.custom_field = custom;\n                        data.button_id = '22116';\n                        data.on_page_button_id = 'swpm_paypal_button_1';\n                        data.item_name = 'Silver Membership Paymment';\n\n                        const post_data = new URLSearchParams({\n                            action: 'swpm_onapprove_process_subscription',\n                            data: JSON.stringify(data),\n                            txn_data: JSON.stringify(txn_data),\n                            _wpnonce: 'ac5403d40e',\n                        }).toString();\n\n                        try {\n                            const requestUrl = \"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-admin\/admin-ajax.php\";\n                            const resp = await fetch( requestUrl, {\n                                method: \"post\",\n                                headers: {\n                                    'Content-Type': 'application\/x-www-form-urlencoded'\n                                },\n                                body: post_data\n                            });\n\n                            const response = await resp.json();\n\n                            \/\/console.log( 'Response from the server: ' + JSON.stringify( response ) );\n                            if ( response.success ) {\n\n                                \/\/Redirect to the Thank you page or Registration page URL if it is set.\n                                const return_url = response.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                                }\n\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-22116');\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                                \/\/ Trigger a event on subscription complete \n                                document.dispatchEvent(new Event('swpm_paypal_subscriptions_complete'));\n                        \n                            } else {\n                                \/\/Error response from the AJAX IPN hanler. Throw error.\n                                throw new Error(response.err_msg);\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                            \/\/ Show the error message.\n                            alert(error.message);\n                            console.error( error.message );\n                        }\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    \n            paypalSubButtonsComponent\n                .render('#swpm_paypal_button_1')\n                .catch((err) => {\n                    console.error('PayPal Buttons failed to render');\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>\n<p>Bronze Membership ($1.00\/3-months) &#8211; All website content less Pro\/NHL and DI Men\/Women:<br \/>\n<div class=\"swpm-payment-button\">    <div id=\"swpm-button-wrapper-22117\" class=\"swpm-button-wrapper swpm-paypal-subscription-button-wrapper\">\n\n    <!-- PayPal button container where the button will be rendered -->\n    <div id=\"swpm_paypal_button_2\" style=\"width: 300px;\"><\/div>\n    <!-- Some additiona hidden input fields -->\n    <input type=\"hidden\" id=\"swpm_paypal_button_2-custom-field\" name=\"custom\" value=\"subsc_ref=4&amp;user_ip=10.9.11.160\">\n\n    <script type=\"text\/javascript\">\n        document.addEventListener( \"swpm_paypal_sdk_subscriptions_loaded\", function() { \n            \/\/Anything that goes here will only be executed after the PayPal SDK is loaded.\n\n            const paypalSubButtonsComponent = swpm_paypal_subscriptions.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: 'pill',\n                    height: 25,\n                    label: 'paypal',\n                    layout: 'vertical',\n                },\n    \n                \/\/ Handle the createSubscription call\n                createSubscription: async function(data, actions) {\n                    \/\/ console.log('createSubscription call triggered. Data: ' + JSON.stringify(data));\n\n                    \/\/We will send ajax request that will create the subscription from the server side using PayPal API.\n                    let pp_sub_bn_data = {};\n                    pp_sub_bn_data.button_id = '22117';\n                    pp_sub_bn_data.on_page_button_id = 'swpm_paypal_button_2';\n                    pp_sub_bn_data.item_name = 'Bronze Membership Payment';\n                    let post_data = 'action=swpm_pp_create_subscription&data=' + JSON.stringify(pp_sub_bn_data) + '&_wpnonce=a75eb3c09d';\n                    try {\n                        \/\/ Using fetch for AJAX request. This is supported in all modern browsers.\n                        const response = await fetch(\"http:\/\/tiffanymediacompany.com\/mhmdev\/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.subscription_id) {\n                            console.log('Create-subscription API call to PayPal completed successfully.');\n                            \/\/If we need to see the details, uncomment the following line.\n                            \/\/console.log('Order data: ' + JSON.stringify(response_data.sub_data));\n\n                            \/\/Return the subscription ID.\n                            return response_data.subscription_id;\n                        } else {\n                            const error_message = JSON.stringify(response_data);\n                            console.error('Error occurred during the create-subscription 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 subscription...\\n\\n' + JSON.stringify(error));\n                    }\n                },\n    \n                \/\/ Notify the buyer that the subscription is successful\n                onApprove: function(data, actions) {\n                    console.log('Successfully created a subscription.');\n                    \/\/console.log(JSON.stringify(data));\n\n                    \/\/Show the spinner while we process this transaction.\n                    const pp_button_container = document.getElementById('swpm_paypal_button_2');\n                    const pp_button_container_wrapper = document.getElementById('swpm-button-wrapper-22117');\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                    \/\/Get the subscription details and send AJAX request to process the transaction.\n                    actions.subscription.get().then( async function( txn_data ) {\n                        \/\/console.log( 'Subscription details: ' + JSON.stringify( txn_data ) );\n\n                        \/\/Ajax request to process the transaction. This will process it similar to how an IPN request is handled.\n                        const custom = document.getElementById('swpm_paypal_button_2-custom-field').value;\n                        data.custom_field = custom;\n                        data.button_id = '22117';\n                        data.on_page_button_id = 'swpm_paypal_button_2';\n                        data.item_name = 'Bronze Membership Payment';\n\n                        const post_data = new URLSearchParams({\n                            action: 'swpm_onapprove_process_subscription',\n                            data: JSON.stringify(data),\n                            txn_data: JSON.stringify(txn_data),\n                            _wpnonce: 'a75eb3c09d',\n                        }).toString();\n\n                        try {\n                            const requestUrl = \"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-admin\/admin-ajax.php\";\n                            const resp = await fetch( requestUrl, {\n                                method: \"post\",\n                                headers: {\n                                    'Content-Type': 'application\/x-www-form-urlencoded'\n                                },\n                                body: post_data\n                            });\n\n                            const response = await resp.json();\n\n                            \/\/console.log( 'Response from the server: ' + JSON.stringify( response ) );\n                            if ( response.success ) {\n\n                                \/\/Redirect to the Thank you page or Registration page URL if it is set.\n                                const return_url = response.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                                }\n\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-22117');\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                                \/\/ Trigger a event on subscription complete \n                                document.dispatchEvent(new Event('swpm_paypal_subscriptions_complete'));\n                        \n                            } else {\n                                \/\/Error response from the AJAX IPN hanler. Throw error.\n                                throw new Error(response.err_msg);\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                            \/\/ Show the error message.\n                            alert(error.message);\n                            console.error( error.message );\n                        }\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    \n            paypalSubButtonsComponent\n                .render('#swpm_paypal_button_2')\n                .catch((err) => {\n                    console.error('PayPal Buttons failed to render');\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>\n","protected":false},"excerpt":{"rendered":"<p>Welcome to our exclusive membership program!&nbsp; As a member you will have access to a range of benefits.&nbsp; We offer several membership tiers for you to select from.&nbsp; Each level will provide different levels of access to our award-winning content. You can register and pay for one of the following membership options: Gold Membership ($3.00\/3-months) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-22109","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Join Us - MHM - Development<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Join Us - MHM - Development\" \/>\n<meta property=\"og:description\" content=\"Welcome to our exclusive membership program!&nbsp; As a member you will have access to a range of benefits.&nbsp; We offer several membership tiers for you to select from.&nbsp; Each level will provide different levels of access to our award-winning content. You can register and pay for one of the following membership options: Gold Membership ($3.00\/3-months) [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/\" \/>\n<meta property=\"og:site_name\" content=\"MHM - Development\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-01T21:19:48+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-content\/uploads\/2019\/10\/MHMVerySmallSigLogo-1.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/\",\"url\":\"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/\",\"name\":\"Join Us - MHM - Development\",\"isPartOf\":{\"@id\":\"https:\/\/tiffanymediacompany.com\/mhmdev\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-content\/uploads\/2019\/10\/MHMVerySmallSigLogo-1.jpg\",\"datePublished\":\"2025-10-26T21:08:36+00:00\",\"dateModified\":\"2025-11-01T21:19:48+00:00\",\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/#primaryimage\",\"url\":\"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-content\/uploads\/2019\/10\/MHMVerySmallSigLogo-1.jpg\",\"contentUrl\":\"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-content\/uploads\/2019\/10\/MHMVerySmallSigLogo-1.jpg\",\"width\":60,\"height\":60},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/tiffanymediacompany.com\/mhmdev\/#website\",\"url\":\"https:\/\/tiffanymediacompany.com\/mhmdev\/\",\"name\":\"MHM - Development\",\"description\":\"Minnesota's leading online hockey destination.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/tiffanymediacompany.com\/mhmdev\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Join Us - MHM - Development","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/","og_locale":"en_US","og_type":"article","og_title":"Join Us - MHM - Development","og_description":"Welcome to our exclusive membership program!&nbsp; As a member you will have access to a range of benefits.&nbsp; We offer several membership tiers for you to select from.&nbsp; Each level will provide different levels of access to our award-winning content. You can register and pay for one of the following membership options: Gold Membership ($3.00\/3-months) [&hellip;]","og_url":"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/","og_site_name":"MHM - Development","article_modified_time":"2025-11-01T21:19:48+00:00","og_image":[{"url":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-content\/uploads\/2019\/10\/MHMVerySmallSigLogo-1.jpg","type":"","width":"","height":""}],"twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/","url":"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/","name":"Join Us - MHM - Development","isPartOf":{"@id":"https:\/\/tiffanymediacompany.com\/mhmdev\/#website"},"primaryImageOfPage":{"@id":"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/#primaryimage"},"image":{"@id":"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/#primaryimage"},"thumbnailUrl":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-content\/uploads\/2019\/10\/MHMVerySmallSigLogo-1.jpg","datePublished":"2025-10-26T21:08:36+00:00","dateModified":"2025-11-01T21:19:48+00:00","inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"http:\/\/tiffanymediacompany.com\/mhmdev\/membership-join\/#primaryimage","url":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-content\/uploads\/2019\/10\/MHMVerySmallSigLogo-1.jpg","contentUrl":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-content\/uploads\/2019\/10\/MHMVerySmallSigLogo-1.jpg","width":60,"height":60},{"@type":"WebSite","@id":"https:\/\/tiffanymediacompany.com\/mhmdev\/#website","url":"https:\/\/tiffanymediacompany.com\/mhmdev\/","name":"MHM - Development","description":"Minnesota's leading online hockey destination.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tiffanymediacompany.com\/mhmdev\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"}]}},"_links":{"self":[{"href":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-json\/wp\/v2\/pages\/22109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-json\/wp\/v2\/comments?post=22109"}],"version-history":[{"count":14,"href":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-json\/wp\/v2\/pages\/22109\/revisions"}],"predecessor-version":[{"id":22148,"href":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-json\/wp\/v2\/pages\/22109\/revisions\/22148"}],"wp:attachment":[{"href":"http:\/\/tiffanymediacompany.com\/mhmdev\/wp-json\/wp\/v2\/media?parent=22109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}