{"id":2549,"date":"2023-12-30T08:19:59","date_gmt":"2023-12-30T00:19:59","guid":{"rendered":"https:\/\/allmusing.net\/hsktest\/membership-join\/"},"modified":"2023-12-31T12:08:20","modified_gmt":"2023-12-31T04:08:20","slug":"membership-join","status":"publish","type":"page","link":"https:\/\/allmusing.net\/hsktest\/membership-join\/","title":{"rendered":"Join Us"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">Achieve HSK Success with our Premium Membership<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-1 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong>1 Month for $6.90<\/strong><\/p>\n\n\n<div class=\"swpm-payment-button\">    <div class=\"swpm-button-wrapper swpm-paypal-buy-now-button-wrapper\">\r\n\r\n    <!-- PayPal button container where the button will be rendered -->\r\n    <div id=\"swpm_paypal_button_0\" style=\"width: 300px;\"><\/div>\r\n    <!-- Some additiona hidden input fields -->\r\n    <input type=\"hidden\" id=\"swpm_paypal_button_0-custom-field\" name=\"custom\" value=\"subsc_ref=3&amp;user_ip=216.73.216.85\">\r\n\r\n    <script type=\"text\/javascript\">\r\n    jQuery( function( $ ) {\r\n        $( document ).on( \"swpm_paypal_sdk_loaded\", function() { \r\n            \/\/Anything that goes here will only be executed after the PayPal SDK is loaded.\r\n            console.log('PayPal JS SDK is loaded.');\r\n\r\n            var js_currency_code = 'USD';\r\n            var js_payment_amount = 6.90;\r\n            var js_quantity = 1;\r\n            var js_digital_goods_enabled = 1;\r\n\r\n            const paypalButtonsComponent = paypal.Buttons({\r\n                \/\/ optional styling for buttons\r\n                \/\/ https:\/\/developer.paypal.com\/docs\/checkout\/standard\/customize\/buttons-style-guide\/\r\n                style: {\r\n                    color: 'blue',\r\n                    shape: 'rect',\r\n                    height: 35,\r\n                    label: 'buynow',\r\n                    layout: 'vertical',\r\n                },\r\n\r\n                \/\/ Setup the transaction.\r\n                async createOrder() {\r\n                    \/\/ Create the order in PayPal using the PayPal API.\r\n                    \/\/ https:\/\/developer.paypal.com\/docs\/checkout\/standard\/integrate\/\r\n                    \/\/ The server-side Create Order API is used to generate the Order. Then the Order-ID is returned.                    \r\n                    console.log('Setting up the AJAX request for create-order call.');\r\n                    let pp_bn_data = {};\r\n                    pp_bn_data.button_id = '2556';\r\n                    pp_bn_data.on_page_button_id = 'swpm_paypal_button_0';\r\n                    pp_bn_data.item_name = 'Premium Membership 1 Month';\r\n                    let post_data = 'action=swpm_pp_create_order&data=' + JSON.stringify(pp_bn_data) + '&_wpnonce=0465f03eb9';\r\n                    try {\r\n                        \/\/ Using fetch for AJAX request. This is supported in all modern browsers.\r\n                        const response = await fetch(\"https:\/\/allmusing.net\/hsktest\/wp-admin\/admin-ajax.php\", {\r\n                            method: \"post\",\r\n                            headers: {\r\n                                'Content-Type': 'application\/x-www-form-urlencoded'\r\n                            },\r\n                            body: post_data\r\n                        });\r\n\r\n                        const response_data = await response.json();\r\n\r\n                        if (response_data.order_id) {\r\n                            console.log('Create-order API call to PayPal completed successfully.');\r\n                            \/\/If we need to see the order details, uncomment the following line.\r\n                            \/\/const order_data = response_data.order_data;\r\n                            \/\/console.log('Order data: ' + JSON.stringify(order_data));\r\n                            return response_data.order_id;\r\n                        } else {\r\n                            const error_message = JSON.stringify(response_data);\r\n                            throw new Error(error_message);\r\n                        }\r\n                    } catch (error) {\r\n                        console.error(error);\r\n                        alert('Could not initiate PayPal Checkout...\\n\\n' + error);\r\n                    }\r\n                },\r\n    \r\n                \/\/ handle the onApprove event\r\n                async onApprove(data, actions) {\r\n                    console.log('Successfully created a transaction.');\r\n\r\n                    \/\/Show the spinner while we process this transaction.\r\n                    var pp_button_container = jQuery('#swpm_paypal_button_0');\r\n                    var pp_button_spinner_conainer = pp_button_container.siblings('.swpm-pp-button-spinner-container');\r\n                    pp_button_container.hide();\/\/Hide the buttons\r\n                    pp_button_spinner_conainer.css('display', 'inline-block');\/\/Show the spinner.\r\n\r\n                    \/\/ Capture the order in PayPal using the PayPal API.\r\n                    \/\/ https:\/\/developer.paypal.com\/docs\/checkout\/standard\/integrate\/\r\n                    \/\/ The server-side capture-order API is used. Then the Capture-ID is returned.\r\n                    console.log('Setting up the AJAX request for capture-order call.');\r\n                    let pp_bn_data = {};\r\n                    pp_bn_data.order_id = data.orderID;\r\n                    pp_bn_data.button_id = '2556';\r\n                    pp_bn_data.on_page_button_id = 'swpm_paypal_button_0';\r\n                    pp_bn_data.item_name = 'Premium Membership 1 Month';\r\n                    \/\/Add custom_field data. It is important to encode the custom_field data so it doesn't mess up the data with & character.\r\n                    const custom_data = document.getElementById('swpm_paypal_button_0-custom-field').value;\r\n                    pp_bn_data.custom_field = encodeURIComponent(custom_data);\r\n                    let post_data = 'action=swpm_pp_capture_order&data=' + JSON.stringify(pp_bn_data) + '&_wpnonce=0465f03eb9';\r\n                    try {\r\n                        const response = await fetch(\"https:\/\/allmusing.net\/hsktest\/wp-admin\/admin-ajax.php\", {\r\n                            method: \"post\",\r\n                            headers: {\r\n                                'Content-Type': 'application\/x-www-form-urlencoded'\r\n                            },\r\n                            body: post_data\r\n                        });\r\n\r\n                        const response_data = await response.json();\r\n                        const txn_data = response_data.txn_data;\r\n                        const error_detail = txn_data?.details?.[0];\r\n                        const error_msg = response_data.error_msg;\/\/Our custom error message.\r\n                        \/\/ Three cases to handle:\r\n                        \/\/ (1) Recoverable INSTRUMENT_DECLINED -> call actions.restart()\r\n                        \/\/ (2) Other non-recoverable errors -> Show a failure message\r\n                        \/\/ (3) Successful transaction -> Show confirmation or thank you message\r\n\r\n                        if (response_data.capture_id) {\r\n                            \/\/ Successful transaction -> Show confirmation or thank you message\r\n                            console.log('Capture-order API call to PayPal completed successfully.');\r\n\r\n                            \/\/Redirect to the Thank you page URL if it is set.\r\n                            return_url = 'https:\/\/allmusing.net\/hsktest\/welcome\/';\r\n                            if( return_url ){\r\n                                \/\/redirect to the Thank you page URL.\r\n                                console.log('Redirecting to the Thank you page URL: ' + return_url);\r\n                                window.location.href = return_url;\r\n                                return;\r\n                            } else {\r\n                                \/\/No return URL is set. Just show a success message.\r\n                                txn_success_msg = 'Transaction completed successfully!';\r\n                                alert(txn_success_msg);\r\n                            }\r\n\r\n                        } else if (error_detail?.issue === \"INSTRUMENT_DECLINED\") {\r\n                            \/\/ Recoverable INSTRUMENT_DECLINED -> call actions.restart()\r\n                            console.log('Recoverable INSTRUMENT_DECLINED error. Calling actions.restart()');\r\n                            return actions.restart();\r\n                        } else if ( error_msg && error_msg.trim() !== '' ) {\r\n                            \/\/Our custom error message from the server.\r\n                            console.error('Error occurred during PayPal checkout process.');\r\n                            console.error( error_msg );\r\n                            alert( error_msg );\r\n                        } else {\r\n                            \/\/ Other non-recoverable errors -> Show a failure message\r\n                            console.error('Non-recoverable error occurred during PayPal checkout process.');\r\n                            console.error( error_detail );\r\n                            \/\/alert('Error occurred with the transaction. Enable debug logging to get more details.\\n\\n' + JSON.stringify(error_detail));\r\n                        }\r\n\r\n                        \/\/Return the button and the spinner back to their orignal display state.\r\n                        pp_button_container.show();\/\/Show the buttons\r\n                        pp_button_spinner_conainer.hide();\/\/Hide the spinner.\r\n\r\n                    } catch (error) {\r\n                        console.error(error);\r\n                        alert('Sorry, your transaction could not be processed...\\n\\n' + error);\r\n                    }\r\n                },\r\n    \r\n                \/\/ handle unrecoverable errors\r\n                onError: function(err) {\r\n                    console.error('An error prevented the user from checking out with PayPal. ' + JSON.stringify(err));\r\n                    alert( 'Error occurred during PayPal checkout process.\\n\\n' + JSON.stringify(err) );\r\n                },\r\n\r\n                \/\/ handle onCancel event\r\n                onCancel: function(data) {\r\n                    console.log('Checkout operation cancelled by the customer.');\r\n                    \/\/Return to the parent page which the button does by default.\r\n                }\r\n            });\r\n    \r\n            paypalButtonsComponent\r\n                .render('#swpm_paypal_button_0')\r\n                .catch((err) => {\r\n                    console.error('PayPal Buttons failed to render');\r\n                });\r\n\r\n            });\r\n        });\r\n    <\/script>\r\n    <style>\r\n        @keyframes swpm-pp-button-spinner {\r\n            to {transform: rotate(360deg);}\r\n        }\r\n        .swpm-pp-button-spinner {\r\n            margin: 0 auto;\r\n            text-indent: -9999px;\r\n            vertical-align: middle;\r\n            box-sizing: border-box;\r\n            position: relative;\r\n            width: 60px;\r\n            height: 60px;\r\n            border-radius: 50%;\r\n            border: 5px solid #ccc;\r\n            border-top-color: #0070ba;\r\n            animation: swpm-pp-button-spinner .6s linear infinite;\r\n        }\r\n        .swpm-pp-button-spinner-container {\r\n            width: 100%;\r\n            text-align: center;\r\n            margin-top:10px;\r\n            display: none;\r\n        }\r\n    <\/style>\r\n    <div class=\"swpm-pp-button-spinner-container\">\r\n        <div class=\"swpm-pp-button-spinner\"><\/div>\r\n    <\/div>\r\n    <\/div><!-- end of .swpm-button-wrapper -->\r\n    <\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong>3 Months for $15.90<\/strong> <em>(save 4.80)<\/em><\/p>\n\n\n<div class=\"swpm-payment-button\">    <div class=\"swpm-button-wrapper swpm-paypal-buy-now-button-wrapper\">\r\n\r\n    <!-- PayPal button container where the button will be rendered -->\r\n    <div id=\"swpm_paypal_button_1\" style=\"width: 300px;\"><\/div>\r\n    <!-- Some additiona hidden input fields -->\r\n    <input type=\"hidden\" id=\"swpm_paypal_button_1-custom-field\" name=\"custom\" value=\"subsc_ref=4&amp;user_ip=216.73.216.85\">\r\n\r\n    <script type=\"text\/javascript\">\r\n    jQuery( function( $ ) {\r\n        $( document ).on( \"swpm_paypal_sdk_loaded\", function() { \r\n            \/\/Anything that goes here will only be executed after the PayPal SDK is loaded.\r\n            console.log('PayPal JS SDK is loaded.');\r\n\r\n            var js_currency_code = 'USD';\r\n            var js_payment_amount = 15.90;\r\n            var js_quantity = 1;\r\n            var js_digital_goods_enabled = 1;\r\n\r\n            const paypalButtonsComponent = paypal.Buttons({\r\n                \/\/ optional styling for buttons\r\n                \/\/ https:\/\/developer.paypal.com\/docs\/checkout\/standard\/customize\/buttons-style-guide\/\r\n                style: {\r\n                    color: 'blue',\r\n                    shape: 'rect',\r\n                    height: 35,\r\n                    label: 'buynow',\r\n                    layout: 'vertical',\r\n                },\r\n\r\n                \/\/ Setup the transaction.\r\n                async createOrder() {\r\n                    \/\/ Create the order in PayPal using the PayPal API.\r\n                    \/\/ https:\/\/developer.paypal.com\/docs\/checkout\/standard\/integrate\/\r\n                    \/\/ The server-side Create Order API is used to generate the Order. Then the Order-ID is returned.                    \r\n                    console.log('Setting up the AJAX request for create-order call.');\r\n                    let pp_bn_data = {};\r\n                    pp_bn_data.button_id = '2574';\r\n                    pp_bn_data.on_page_button_id = 'swpm_paypal_button_1';\r\n                    pp_bn_data.item_name = 'Premium Membership 3 Months';\r\n                    let post_data = 'action=swpm_pp_create_order&data=' + JSON.stringify(pp_bn_data) + '&_wpnonce=5def10c61f';\r\n                    try {\r\n                        \/\/ Using fetch for AJAX request. This is supported in all modern browsers.\r\n                        const response = await fetch(\"https:\/\/allmusing.net\/hsktest\/wp-admin\/admin-ajax.php\", {\r\n                            method: \"post\",\r\n                            headers: {\r\n                                'Content-Type': 'application\/x-www-form-urlencoded'\r\n                            },\r\n                            body: post_data\r\n                        });\r\n\r\n                        const response_data = await response.json();\r\n\r\n                        if (response_data.order_id) {\r\n                            console.log('Create-order API call to PayPal completed successfully.');\r\n                            \/\/If we need to see the order details, uncomment the following line.\r\n                            \/\/const order_data = response_data.order_data;\r\n                            \/\/console.log('Order data: ' + JSON.stringify(order_data));\r\n                            return response_data.order_id;\r\n                        } else {\r\n                            const error_message = JSON.stringify(response_data);\r\n                            throw new Error(error_message);\r\n                        }\r\n                    } catch (error) {\r\n                        console.error(error);\r\n                        alert('Could not initiate PayPal Checkout...\\n\\n' + error);\r\n                    }\r\n                },\r\n    \r\n                \/\/ handle the onApprove event\r\n                async onApprove(data, actions) {\r\n                    console.log('Successfully created a transaction.');\r\n\r\n                    \/\/Show the spinner while we process this transaction.\r\n                    var pp_button_container = jQuery('#swpm_paypal_button_1');\r\n                    var pp_button_spinner_conainer = pp_button_container.siblings('.swpm-pp-button-spinner-container');\r\n                    pp_button_container.hide();\/\/Hide the buttons\r\n                    pp_button_spinner_conainer.css('display', 'inline-block');\/\/Show the spinner.\r\n\r\n                    \/\/ Capture the order in PayPal using the PayPal API.\r\n                    \/\/ https:\/\/developer.paypal.com\/docs\/checkout\/standard\/integrate\/\r\n                    \/\/ The server-side capture-order API is used. Then the Capture-ID is returned.\r\n                    console.log('Setting up the AJAX request for capture-order call.');\r\n                    let pp_bn_data = {};\r\n                    pp_bn_data.order_id = data.orderID;\r\n                    pp_bn_data.button_id = '2574';\r\n                    pp_bn_data.on_page_button_id = 'swpm_paypal_button_1';\r\n                    pp_bn_data.item_name = 'Premium Membership 3 Months';\r\n                    \/\/Add custom_field data. It is important to encode the custom_field data so it doesn't mess up the data with & character.\r\n                    const custom_data = document.getElementById('swpm_paypal_button_1-custom-field').value;\r\n                    pp_bn_data.custom_field = encodeURIComponent(custom_data);\r\n                    let post_data = 'action=swpm_pp_capture_order&data=' + JSON.stringify(pp_bn_data) + '&_wpnonce=5def10c61f';\r\n                    try {\r\n                        const response = await fetch(\"https:\/\/allmusing.net\/hsktest\/wp-admin\/admin-ajax.php\", {\r\n                            method: \"post\",\r\n                            headers: {\r\n                                'Content-Type': 'application\/x-www-form-urlencoded'\r\n                            },\r\n                            body: post_data\r\n                        });\r\n\r\n                        const response_data = await response.json();\r\n                        const txn_data = response_data.txn_data;\r\n                        const error_detail = txn_data?.details?.[0];\r\n                        const error_msg = response_data.error_msg;\/\/Our custom error message.\r\n                        \/\/ Three cases to handle:\r\n                        \/\/ (1) Recoverable INSTRUMENT_DECLINED -> call actions.restart()\r\n                        \/\/ (2) Other non-recoverable errors -> Show a failure message\r\n                        \/\/ (3) Successful transaction -> Show confirmation or thank you message\r\n\r\n                        if (response_data.capture_id) {\r\n                            \/\/ Successful transaction -> Show confirmation or thank you message\r\n                            console.log('Capture-order API call to PayPal completed successfully.');\r\n\r\n                            \/\/Redirect to the Thank you page URL if it is set.\r\n                            return_url = 'https:\/\/allmusing.net\/hsktest\/welcome\/';\r\n                            if( return_url ){\r\n                                \/\/redirect to the Thank you page URL.\r\n                                console.log('Redirecting to the Thank you page URL: ' + return_url);\r\n                                window.location.href = return_url;\r\n                                return;\r\n                            } else {\r\n                                \/\/No return URL is set. Just show a success message.\r\n                                txn_success_msg = 'Transaction completed successfully!';\r\n                                alert(txn_success_msg);\r\n                            }\r\n\r\n                        } else if (error_detail?.issue === \"INSTRUMENT_DECLINED\") {\r\n                            \/\/ Recoverable INSTRUMENT_DECLINED -> call actions.restart()\r\n                            console.log('Recoverable INSTRUMENT_DECLINED error. Calling actions.restart()');\r\n                            return actions.restart();\r\n                        } else if ( error_msg && error_msg.trim() !== '' ) {\r\n                            \/\/Our custom error message from the server.\r\n                            console.error('Error occurred during PayPal checkout process.');\r\n                            console.error( error_msg );\r\n                            alert( error_msg );\r\n                        } else {\r\n                            \/\/ Other non-recoverable errors -> Show a failure message\r\n                            console.error('Non-recoverable error occurred during PayPal checkout process.');\r\n                            console.error( error_detail );\r\n                            \/\/alert('Error occurred with the transaction. Enable debug logging to get more details.\\n\\n' + JSON.stringify(error_detail));\r\n                        }\r\n\r\n                        \/\/Return the button and the spinner back to their orignal display state.\r\n                        pp_button_container.show();\/\/Show the buttons\r\n                        pp_button_spinner_conainer.hide();\/\/Hide the spinner.\r\n\r\n                    } catch (error) {\r\n                        console.error(error);\r\n                        alert('Sorry, your transaction could not be processed...\\n\\n' + error);\r\n                    }\r\n                },\r\n    \r\n                \/\/ handle unrecoverable errors\r\n                onError: function(err) {\r\n                    console.error('An error prevented the user from checking out with PayPal. ' + JSON.stringify(err));\r\n                    alert( 'Error occurred during PayPal checkout process.\\n\\n' + JSON.stringify(err) );\r\n                },\r\n\r\n                \/\/ handle onCancel event\r\n                onCancel: function(data) {\r\n                    console.log('Checkout operation cancelled by the customer.');\r\n                    \/\/Return to the parent page which the button does by default.\r\n                }\r\n            });\r\n    \r\n            paypalButtonsComponent\r\n                .render('#swpm_paypal_button_1')\r\n                .catch((err) => {\r\n                    console.error('PayPal Buttons failed to render');\r\n                });\r\n\r\n            });\r\n        });\r\n    <\/script>\r\n    <style>\r\n        @keyframes swpm-pp-button-spinner {\r\n            to {transform: rotate(360deg);}\r\n        }\r\n        .swpm-pp-button-spinner {\r\n            margin: 0 auto;\r\n            text-indent: -9999px;\r\n            vertical-align: middle;\r\n            box-sizing: border-box;\r\n            position: relative;\r\n            width: 60px;\r\n            height: 60px;\r\n            border-radius: 50%;\r\n            border: 5px solid #ccc;\r\n            border-top-color: #0070ba;\r\n            animation: swpm-pp-button-spinner .6s linear infinite;\r\n        }\r\n        .swpm-pp-button-spinner-container {\r\n            width: 100%;\r\n            text-align: center;\r\n            margin-top:10px;\r\n            display: none;\r\n        }\r\n    <\/style>\r\n    <div class=\"swpm-pp-button-spinner-container\">\r\n        <div class=\"swpm-pp-button-spinner\"><\/div>\r\n    <\/div>\r\n    <\/div><!-- end of .swpm-button-wrapper -->\r\n    <\/div>\n<\/div>\n<\/div>\n\n\n\n<p><strong>Join the Community of Achievers:<\/strong> Sign up or renew your Premium Membership today to get access to our <strong>Premium quizzes and flashcards<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-2 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/allmusing.net\/hsktest\/hsk-flashcards\/\">HSK Flashcards<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/allmusing.net\/hsktest\/hsk-reading-practice-quiz\/\">HSK Reading Quiz<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-3 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/allmusing.net\/hsktest\/hsk-listening-quiz\/\">HSK Listening Quiz<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/allmusing.net\/hsktest\/hsk-sentence-structure-quiz\/\">HSK Sentence Structure<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>If you are a new member, you would receive an email with instructions on how to complete your registration. Please check your spam folder if you do not see it in your inbox.<\/p>\n\n\n\n<p>If you have not received the email within 15 minutes or if you are facing any issue, please do not hesitate to&nbsp;<a href=\"https:\/\/allmusing.net\/contact-us\/\">Contact Us<\/a>&nbsp;.<\/p>\n\n\n\n<p>Once you login, you will be able to enjoy all the Premium content on this site.<\/p>\n\n\n\n<p>To check your account status, please go to \u201c<strong><a href=\"https:\/\/allmusing.net\/hsktest\/membership-login\/\">Account<\/a><\/strong>\u201c.<\/p>\n\n\n\n<p>To change your password please go to \u201c<strong><a href=\"https:\/\/allmusing.net\/hsktest\/membership-login\/membership-profile\/\">Profile<\/a><\/strong>\u201c.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Achieve HSK Success with our Premium Membership 1 Month for $6.90 3 Months for $15.90 (save 4.80) Join the Community of Achievers: Sign up or renew your Premium Membership today to get access to our Premium quizzes and flashcards. If you are a new member, you would receive an email with instructions on how to &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/allmusing.net\/hsktest\/membership-join\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Join Us&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/allmusing.net\/hsktest\/wp-json\/wp\/v2\/pages\/2549"}],"collection":[{"href":"https:\/\/allmusing.net\/hsktest\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/allmusing.net\/hsktest\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/allmusing.net\/hsktest\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/allmusing.net\/hsktest\/wp-json\/wp\/v2\/comments?post=2549"}],"version-history":[{"count":0,"href":"https:\/\/allmusing.net\/hsktest\/wp-json\/wp\/v2\/pages\/2549\/revisions"}],"wp:attachment":[{"href":"https:\/\/allmusing.net\/hsktest\/wp-json\/wp\/v2\/media?parent=2549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}