Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Extract from support article https://aelia.freshdesk.com/solution/articles/3000010676
- *
- * Example 6 - Forcing checkout in a specific currency
- * If you wish to allow customers to browse the site in a currency of their choice,
- * but force them to complete the checkout in a specific currency, the following code
- * shows an example of how you can do that.
- *
- * Need help customising the code for your need? Hire us on Codeable: http://bit.ly/codeable_aelia
- */
- /**
- * Adds parameters to the Ajax request used to refresh the minicart. The additional
- * parameters will be used to determine the context in which the request was made,
- * so that we can know if we should force the currency because we are on the
- * checkout page.
- *
- * @param array params An array of parameters.
- * @return array
- */
- add_filter('wc_cart_fragments_params', function($params) {
- if(is_checkout()) {
- if(strpos($params['wc_ajax_url'], '?') > 0) {
- $params['wc_ajax_url'] .= '&';
- }
- else {
- $params['wc_ajax_url'] .= '?';
- }
- // Add a parameter to the Ajax request, to keep track that it was triggered
- // on the checkout page
- $params['wc_ajax_url'] .= 'aelia_context=checkout';
- }
- return $params;
- });
- /**
- * Determines if we are processing an Ajax request triggered on the checkout page.
- *
- * @return bool
- */
- function aelia_is_checkout_ajax_request() {
- if(defined('DOING_AJAX')) {
- // The "update_order_review" request updates the totals on the checkout
- // page
- if($_REQUEST['wc-ajax'] === 'update_order_review') {
- return true;
- }
- // The "get_refreshed_fragments" updates the minicart. We only need to take
- // it into account if we are on the checkout page
- if(($_REQUEST['wc-ajax'] === 'get_refreshed_fragments') &&
- ($_REQUEST['aelia_context'] === 'checkout')) {
- return true;
- }
- }
- return false;
- }
- /**
- * Forces the checkout currency to USD.
- *
- * @param string selected_currency The currency selected originally.
- * @return string
- */
- add_filter('wc_aelia_cs_selected_currency', function($selected_currency) {
- // If we are on the checkout page, or handling an Ajax request from that page,
- // force the currency to USD
- if(is_checkout() || is_checkout_ajax_request()) {
- $selected_currency = 'USD';
- }
- return $selected_currency;
- }, 50);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement