WooCommerce: скидки по паритету покупательной способности (ППС)
Опубликовано: 2022-08-03Поскольку… сегодня онлайн-курсы Business Bloomer доступны каждому .
К сожалению, цифровые продукты (такие как наши онлайн-курсы WooCommerce) оцениваются в долларах США, но корректировки для менее привилегированных стран нет.
Жаль, потому что контент должен быть доступен ВСЕМ разработчикам WooCommerce по всему миру, независимо от уровня их дохода. Я получаю десятки писем в месяц от замечательных людей, которые не могут позволить себе курс за 397 долларов США , потому что они зарабатывают эту сумму за 4 месяца, если им повезет.
Итак, давайте изменим это. Здесь на помощь приходит паритет покупательной способности (ППС).
ППС — это специальный показатель, который сообщает нам реальную «покупательную способность» данной страны. Берите корзину с одинаковыми товарами, платите в местной валюте в своей стране; покупать те же товары в долларах США в Соединенных Штатах. Сравните эту разницу с фактическим обменным курсом. Теперь у вас действительно есть представление о том, сколько страна может позволить себе заплатить за эту корзину товаров.
Давайте поговорим на простом английском языке. Вы из Индии ? Вы можете получить скидку до 75% на наши онлайн-курсы. Вы из Южной Африки ? Возможно скидка 59%! Вы из Аргентины ? В среднем скидка 61%. Вы из Норвегии ? Без скидки, извините (кажется, у вас лучше, чем в США). И так далее…
В этом посте я рассмотрю краткий математический пример PPP, чтобы дать вам некоторый контекст, а затем я расскажу вам, как я реализовал скидки PPP на том же веб-сайте WooCommerce.
Хотите помочь мне протестировать функцию скидок PPP, которая в настоящее время находится в стадии бета-тестирования? Добавьте курс в корзину, например, CustomizeWoo PRO, выберите страну для выставления счетов при оформлении заказа и оставьте комментарий ниже, указав полученную скидку, если таковая имеется.
Наслаждаться!

Паритет покупательной способности – математика
Пример: в Соединенных Штатах я могу купить книгу « БЕЗ ВСЕГО » за 10 долларов США . В Индии по сегодняшнему обменному курсу (1 доллар США = 78 индийских рупий ) цена должна быть 780 индийских рупий …. но это не так, потому что у Индии не такая покупательная способность, как у Соединенных Штатов .
Если та же самая книга « НЕзависимо » в Индии стоит 300 индийских рупий , ППС равен 300 индийских рупий / 10 долларов США = 30. Вы можете видеть, что существует огромная разница между фактическим обменным курсом (78) и рассчитанным ППС ( 30). Это означает, что Индия в среднем может купить тот же товар за меньшую сумму, потому что она не может позволить себе заплатить точную конвертированную сумму.
Теперь мы можем использовать 2 цифры, чтобы сделать следующий вывод: в Индии этот предмет стоимостью 10 долларов США можно купить в местной валюте за 300 индийских рупий ; учитывая текущий обменный курс 78, это означает, что предмет стоимостью 10 долларов США можно купить там за 300/78 = 3,84 доллара США .
В двух словах, если Индия может позволить себе только 3,84 доллара США из 10, продукты в Индии, продаваемые американской компанией в долларах США, должны иметь скидку 61,6%, чтобы быть «справедливыми» и соответствовать ППС . Курс стоимостью 100 долларов США в Индии должен стоить 38,4 доллара США .
Внедрение паритета покупательной способности WooCommerce
Я решил определить страну непосредственно на странице оформления заказа после выбора страны выставления счетов. Я не использую геолокацию, потому что она медленнее, а также потому, что с технологией VPN вы можете не знать, откуда пользователь.
Вот PHP, который я использую для динамического чтения страны выставления счетов (двухбуквенный код) после загрузки/обновления кассы:
/**
* @snippet Get Billing Country @ WooCommerce Checkout
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_action( 'woocommerce_checkout_update_order_review', 'bbloomer_ppp' );
function bbloomer_ppp( $post_data ) {
parse_str( $post_data, $output );
if ( $output['billing_country'] ) {
$country_code_2 = $output['billing_country'];
// THEN, DO SOMETHING WITH COUNTRY CODE
}
}
Как только я получаю платежную страну, происходит много вещей:
- Я удостоверяюсь, что страна не США, так как ее значение ППС равно 1 по определению.
- Проверяю, есть ли в корзине категория «онлайн-курсы», иначе выхожу.
- Я получаю код валюты страны (из самого WooCommerce).
- Я вызываю бесплатный API курсов обмена валют (exchangerate.host) и получаю курс обмена валюты по отношению к доллару США.
- Я рассчитываю трехбуквенный код страны, так как он нужен для пункта 6 (в отличие от двухбуквенной версии). Это делается путем вызова API Worldbank.
- Я вызываю бесплатный API PPP (Всемирный банк) и получаю значение PPP страны (рассчитанное как среднее значение за последние 5 лет).
- Я рассчитываю скидку на основе значения PPP (макс. 75%).
Вот PHP, который я использую для получения кода валюты, обменного курса и значения PPP для данной страны выставления счетов WooCommerce:
/**
* @snippet Get Currency, Ex Rate & PPP By Billing Country
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
// GET CURRENCY CODE
$locale_info = include WC()->plugin_path() . '/i18n/locale-info.php';
$currency = $locale_info[$output['billing_country']]['currency_code'];
// GET EXCHANGE RATE
$req_url = 'https://api.exchangerate.host/latest/?base=USD&symbols=' . $currency;
$response_json = file_get_contents( $req_url );
$response = json_decode( $response_json );
if ( $response->success === true ) {
$exchange_rate = $response->rates->{$currency};
}
// GET COUNTRY PPP VALUE (AVERAGE FOR PREVIOUS 5 YEARS)
$ppp_url = 'https://api.worldbank.org/v2/country/' . $country_code_3 . '/indicator/PA.NUS.PRVT.PP?date=' . date( "Y", strtotime( "-5 years" ) ) . ':' . date( "Y", strtotime( "-1 year" ) ) . '&format=json';
$ppp = json_decode( file_get_contents( $ppp_url ), true );
$values = array();
foreach ( $ppp[1] as $key => $val ) {
if ( $val['date'] && $val['value'] ) {
$values[$val['date']] = (float) $val['value'];
}
}
$avg_ppp = array_sum( $values ) / count( $values );
На этом этапе появляется уведомление об оплате :

- Если для этой страны не существует значения ППС (у Всемирного банка нет данных по каждой стране), я предлагаю клиентам связаться со мной, потому что я не хочу, чтобы кто-то был исключен из потенциальных скидок.
- Если значение PPP существует, а покупательная способность страны меньше, я показываю уведомление о кассе с кнопкой «Применить купон» со скидкой от 1% до 75% (при нажатии касса перезагружается и применяет скидку).
Вот код PHP, который отображает уведомление о проверке, когда PPP не равен нулю, а скидка составляет от 1 до 75% :
/**
* @snippet Show Notice @ WooCommerce Checkout
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
$message = 'Your country is eligible for a ' . $discount . '% discount on courses! Read more about Purchasing Power Parity <a href="/woocommerce-purchasing-power-parity-discounts" target="_blank">here</a>. <a href="' . esc_url( add_query_arg( 'ppp', $discount, wc_get_checkout_url() ) ) . '" class="button wc-forward">Apply Discount</a>';
if ( ! WC()->cart->has_discount( $discount ) ) {
wc_add_notice( $message, 'success' );
}
Купоны паритета покупательной способности WooCommerce
Конечно, мне также пришлось изучить возможность создания кодов купонов, потому что я решил оставить PPP-скидки необязательными, т. е. клиенты должны щелкнуть мышью, чтобы применить свою скидку . Я считаю, что это хорошая стратегия, потому что кто-то может не захотеть воспользоваться скидкой (например , я могу быть разработчиком из США, живущим в Индии, поэтому у меня действительно одна из самых высоких значений покупательной способности ).
Поэтому мне пришлось:
- генерировать коды купонов массово, по одному на каждую сумму скидки (фрагмент PHP скоро появится)
- автоматически применять купон при нажатии кнопки «Применить купон» (фрагмент PHP скоро появится)
- скрыть коды купонов при оформлении заказа, чтобы избежать совместного использования купонов/злоупотреблений
И это все.
WooCommerce PPP сейчас находится в стадии бета-тестирования, уже работает на странице оформления заказа Business Bloomer, и вы можете протестировать его, добавив курс в корзину (например, вот прямая ссылка для добавления CustomizeWoo PRO в корзину), выбрав страну выставления счета и прочитав оформление заказа. уведомление с суммой скидки.
Часто задаваемые вопросы о паритете покупательной способности WooCommerce
Расчеты основаны на общедоступных данных, доступных в Интернете, поэтому не принимайте их на свой счет! Я сделал все возможное, рассмотрев среднее значение ППС за последние 5 лет. Если вы все еще считаете, что расчеты несправедливы, оставьте комментарий ниже, и давайте поговорим. Мы все еще в бета-версии.
Они всегда будут частью онлайн-торговли. Я, вероятно, собираюсь заставить некоторых людей ввести случайные страны выставления счетов, чтобы получить скидку, но я полагаю, что их заказы не будут выполнены, поскольку PayPal / Stripe не распознает эту страну. Если эта проверка не пройдена, ничего страшного. Эти транзакции будут определенно меньше, чем количество людей во всем мире, которые сейчас могут позволить себе мои курсы.
Потому что все остальные продукты/подписки стоят меньше 99 долларов, и я не могу их сбрасывать со счетов. То же, что консалтинг/разработка WooCommerce — к сожалению, налоги здесь, в Италии, высоки, и мне нужно придерживаться моей почасовой ставки.
Дайте мне несколько дней/недель. Вскоре это будет упаковано в мини-плагин, чтобы вы могли применить его к своему собственному магазину WooCommerce.
Я знаю вашу боль, но помните, что вы получили пожизненный доступ к видео, а также пожизненную поддержку по вопросам WooCommerce. Если этого все еще недостаточно, я понимаю. Свяжитесь с нами, и я посмотрю, смогу ли я помочь.