WooCommerce:购买力平价(PPP)折扣

已发表: 2022-08-03

从……今天开始, Business Bloomer 在线课程对每个人来说都是负担得起的

不幸的是,数字产品(例如我们的 WooCommerce 在线课程)以美元定价,但对于特权较低的国家没有调整。

遗憾的是,无论收入水平如何,全球所有 WooCommerce 开发人员都应该可以访问内容。 我每个月都会收到几十封电子邮件,这些人真的买不起 397美元的课程,因为如果幸运的话,他们可以在 4 个月内赚到这么多钱。

所以,让我们改变一下。 购买力平价(PPP) 来解决这个问题。

购买力平价是一个特殊的指标,它告诉我们一个特定国家的真正“购买力”。 拿一篮相同的商品,在本国用当地货币支付; 在美国用美元购买相同的物品。 将该差异与实际汇率进行比较。 现在你真的知道一个国家可以为那一篮子商品支付多少费用。

让我们用简单的英语交谈。 你来自印度吗? 您可以获得高达 75% 的在线课程折扣。 你来自南非吗? 也许有 59% 的折扣! 你来自阿根廷吗? 平均折扣 61%。 你来自挪威吗? 没有折扣,对不起(看来你比美国做得更好)。 等等…

在这篇文章中,我将通过一个快速的 PPP 数学示例为您提供一些背景信息,然后我将告诉您我是如何在同一个 WooCommerce 网站中实现 PPP 折扣的。

想帮我测试目前处于测试阶段的 PPP 折扣功能吗? 将课程添加到购物车,例如 CustomizeWoo PRO,在结帐时选择您的帐单国家/地区,并在下方留下您获得的折扣(如果有)的评论。

享受!

由于 Business Bloomer 的 PPP 调整,从今天开始,阿富汗客户将获得高达 75% 的优质在线课程折扣。

购买力平价——数学

示例:在美国,我可以花 10美元购买“ WHATEVER ”书。在印度,根据今天的汇率(1美元= 78卢比),价格应该是 780卢比……。 但事实并非如此,因为印度的购买力不如美国

如果在印度同样的“ WHATEVER ”书定价为 300卢比,PPP 等于 300卢比/10美元= 30。可以看到实际汇率(78)和计算出来的 PPP( 30)。 也就是说,平均而言,印度可以用更少的美元购买同样的商品,因为它无法支付确切的换算金额。

我们现在可以使用这两个数字得出以下结论:在印度,这件 10美元的商品可以用当地货币 300卢比购买; 鉴于当前的汇率为 78,这意味着可以在那里以 300/78 = 3.84美元价格购买 10 美元的商品

简而言之,如果印度每 10 件商品中只能负担 3.84美元,那么美国公司以美元出售的产品在印度应折价 61.6% 才算“公平”且符合购买力平价。 100美元的课程,在印度的价格应为 38.4美元

WooCommerce 购买力平价实施

一旦选择了计费国家,我决定直接在结帐页面上检测国家。 我没有使用地理定位,因为它速度较慢,还因为使用 VPN 技术,您可能并不真正知道用户来自哪里。

这是我用来在结帐加载/刷新后动态读取帐单国家/地区(2 个字母代码)的 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. 我确保国家不是美国,因为它的购买力平价值定义为 1。
  2. 我确保购物车包含“在线课程”类别,否则我退出。
  3. 我得到了国家的货币代码(来自 WooCommerce 本身)。
  4. 我调用一个免费的外汇汇率 API (exchangerate.host) 并获取对美元的货币汇率。
  5. 我计算了第 6 点所需的国家/地区的 3 字母代码(而不是 2 字母版本)。 这是通过调用 Worldbank API 来完成的。
  6. 我调用了一个免费的 PPP API(世界银行)并获得了该国的 PPP 值(计算为过去 5 年的平均值)。
  7. 我根据 PPP 值计算折扣(最大 75%)

这是我用来获取给定 WooCommerce 计费国家/地区的货币代码、汇率和 PPP 值的 PHP

/**
 * @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 值(世界银行没有每个国家/地区的数据),我邀请客户与我联系,因为我不希望任何人被排除在潜在折扣之外。
  • 如果 PPP 值存在并且该国家/地区的购买力较低,我会显示一个结帐通知,其中包含 1% 到 75% 的“应用优惠券”按钮(点击时,结帐重新加载并应用折扣)。

这是当 PPP 不为空且折扣在 1 到 75% 之间时显示结帐通知的 PHP 代码

/**
 * @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 购买力平价常见问题解答

鲁道夫,我的国家有 49% 的折扣,而不是像印度那样的 74%?

计算基于在线提供的公开数据,因此请不要个人认为! 通过考虑过去 5 年的平均 PPP 值,我已经尽力了。 如果您仍然认为计算不公平,请在下面发表评论,让我们谈谈。 我们仍处于测试阶段。

鲁道夫,骗局和坏人呢?

这些将永远是在线商务的一部分。 我可能会让一些人进入随机计费国家以获得折扣——但我相信他们的订单会失败,因为 PayPal/Stripe 无法识别该国家。 如果此检查失败,则没有任何问题。 这些交易肯定会少于全世界现在能负担得起我课程的人数。

Rodolfo,为什么只有在线课程?

因为其他产品/订阅都低于 99 美元,我不能打折。 与 WooCommerce 咨询/开发相同——不幸的是,意大利的税收很高,我需要坚持我的小时费率。

Rodolfo,我可以获得完整的 WooCommerce PPP 代码吗?

给我几天/几周。 这将很快打包到一个迷你插件中,以便您可以将其应用于您自己的 WooCommerce 商店。

Rodolfo,我是一名现有的学生,X 个月前我支付了全额美元价格......

我知道您的痛苦,但请记住,您可以终生访问视频以及终生支持 WooCommerce 问题。 如果这还不够,我理解。 联系一下,我看看能不能帮忙。