'', 'show_header' => 'true', 'header_text' => '', 'login_screen' => 'false', 'show_widget_headers' => 'false', 'empty_widget_area_url' => '', 'company_logo_url' => '', 'custom_css' => '', 'force_password_change' => 'true', 'show_profile' => 'true', 'show_subscription_list' => 'true', 'show_statement_history' => 'true', 'show_balance' => 'true', 'show_header' => 'true', 'show_usage_history' => 'true', 'show_usage_balances' => 'true', 'show_payment_methods' => 'true', 'show_make_payment' => 'true', 'profile_on_customer_edit' => '', 'profile_on_password_change' => '', 'profile_show_change_password' => 'true', 'profile_tax_tnformation_countries' => '', 'profile_vat_on_e_services' => 'false', 'subscription_list_cancel_subscription' => 'true', 'subscription_list_item_fields_handler' => '', 'usage_history_skip' => '0', 'usage_history_take' => '10', 'payment_methods_show_credit_cards' => 'true', 'payment_methods_show_bank_accounts' => 'false', 'payment_methods_show_billing_agreements' => 'false', 'payment_methods_confirm_url' => '', 'payment_methods_cancel_url' => '', 'vat_on_e_services' => 'false', 'tax_information_countries' => '' ), $atts ) ); $customer_id = accumulus_get_current_customer_id(); if (empty($customer_id) || $customer_id === 0) { echo "Invalid customer id"; exit; } switch (strtolower($environment)) { case "test": $environment_prefix = "test"; break; case "itest": $environment_prefix = "itest"; break; default: $environment_prefix = ""; } if (empty($resourceUrl)) { $resourceUrl = plugins_url('accumulus-subscription-commerce/public').'/'; } $baseAjaxUrl = 'https://'.$environment_prefix.'ajax.accumulus.com'; $token = get_option('accumulus_'.$environment_prefix.'token'); if (empty($token)) { _e("The Accumulus ".$environment." account is not connected. Please connect it under the Accumulus plugin settings before using the portal form.", "accumulus"); exit; } wp_enqueue_style('accumulus-ui-css', $resourceUrl.'/css/accumulus.ui.css'); if (!empty($custom_css)) { wp_add_inline_style( 'accumulus-ui-css', $custom_css ); } wp_enqueue_script('jquery-ui', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js', array( 'jquery') ); wp_enqueue_script('jquery-validate', 'https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js', array( 'jquery')); wp_enqueue_script('jquery-validate-methods', 'https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/additional-methods.min.js', array( 'jquery')); wp_enqueue_script('jquery-format-currency', $resourceUrl.'dependencies/jQueryFormatCurrencyPlugin/jquery.formatCurrency-1.4.0.js', array( 'jquery')); wp_enqueue_script('jquery-format-currency-us', $resourceUrl.'dependencies/jQueryFormatCurrencyPlugin/i18n/jquery.formatCurrency.en-US.js', array( 'jquery')); wp_enqueue_script('accumulus-core', $resourceUrl.'js/accumulus.core.js', array( 'jquery')); wp_enqueue_script('accumulus-ui', $resourceUrl.'js/accumulus.ui.js', array( 'jquery', 'accumulus-core')); wp_add_inline_script( 'accumulus-ui',' var Accumulus = { resourcesUrl: "'.$resourceUrl.'", serviceUrl: "'.$baseAjaxUrl.'/webapi", global: { localize: false, defaultCountryCode: "USA" } };'); //echo 'Access Token: ' . $token->getToken() . "
"; //echo 'Already expired? ' . ($token->hasExpired() ? 'expired' : 'not expired') . "
"; //echo 'Refresh Token: ' . $token->getRefreshToken() . "
"; //echo 'Expired in: ' . $token->getExpires() . "
"; // refresh the oauth access token if it has expired if ($token->hasExpired()) { $client_id = get_option('accumulus_'.$environment_prefix.'client_id'); $client_secret = get_option('accumulus_'.$environment_prefix.'client_secret'); if ($client_id && $client_secret) { $provider = new League\OAuth2\Client\Provider\Accumulus([ "environmentPrefix" => $environment_prefix, "clientId" => $client_id, "clientSecret" => $client_secret, "redirectUri" => admin_url("options-general.php?page=accumulus") ]); } else { _e("The Accumulus ".$environment." account is not connected. Please verify the client id and secret have been configured and the account connected under the Accumulus plugin settings before using the portal form.", "accumulus"); exit; } $token = $provider->getAccessToken('refresh_token', [ 'refresh_token' => $token->getRefreshToken() ]); update_option("accumulus_'.$environment_prefix.'token", $token, TRUE ); } // obtain the Accumulus ajax sso token for this customer $client = new GuzzleHttp\Client(['base_uri' => 'https://'.$environment_prefix.'webapi.accumulus.com']); $headers = [ 'Authorization' => 'Bearer ' . $token->getToken(), 'Accept' => 'application/json', ]; $response = $client->request('GET', '/settings/hostedpages/portal/customers/'.$customer_id.'/token', [ 'headers' => $headers, 'exceptions' => false ]); $statusCode = $response->getStatusCode(); switch ($statusCode) { case '200': break; case '404': _e('Customer '.$customer_id.' not found', 'accumulus'); exit; break; default: _e('Cannot get customer '.$customer_id.' ('.$statusCode.')', 'accumulus'); exit; break; } $hostedPagesTokenRespone = json_decode($response->getBody()); ob_start(); ?>