WooCommerce:购买力平价(PPP)折扣
已发表: 2022-08-03从……今天开始, Business Bloomer 在线课程对每个人来说都是负担得起的。
不幸的是,数字产品(例如我们的 WooCommerce 在线课程)以美元定价,但对于特权较低的国家没有调整。
遗憾的是,无论收入水平如何,全球所有 WooCommerce 开发人员都应该可以访问内容。 我每个月都会收到几十封电子邮件,这些人真的买不起 397美元的课程,因为如果幸运的话,他们可以在 4 个月内赚到这么多钱。
所以,让我们改变一下。 购买力平价(PPP) 来解决这个问题。
购买力平价是一个特殊的指标,它告诉我们一个特定国家的真正“购买力”。 拿一篮相同的商品,在本国用当地货币支付; 在美国用美元购买相同的物品。 将该差异与实际汇率进行比较。 现在你真的知道一个国家可以为那一篮子商品支付多少费用。
让我们用简单的英语交谈。 你来自印度吗? 您可以获得高达 75% 的在线课程折扣。 你来自南非吗? 也许有 59% 的折扣! 你来自阿根廷吗? 平均折扣 61%。 你来自挪威吗? 没有折扣,对不起(看来你比美国做得更好)。 等等…
在这篇文章中,我将通过一个快速的 PPP 数学示例为您提供一些背景信息,然后我将告诉您我是如何在同一个 WooCommerce 网站中实现 PPP 折扣的。
想帮我测试目前处于测试阶段的 PPP 折扣功能吗? 将课程添加到购物车,例如 CustomizeWoo PRO,在结帐时选择您的帐单国家/地区,并在下方留下您获得的折扣(如果有)的评论。
享受!
购买力平价——数学
示例:在美国,我可以花 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。
- 我确保购物车包含“在线课程”类别,否则我退出。
- 我得到了国家的货币代码(来自 WooCommerce 本身)。
- 我调用一个免费的外汇汇率 API (exchangerate.host) 并获取对美元的货币汇率。
- 我计算了第 6 点所需的国家/地区的 3 字母代码(而不是 2 字母版本)。 这是通过调用 Worldbank API 来完成的。
- 我调用了一个免费的 PPP API(世界银行)并获得了该国的 PPP 值(计算为过去 5 年的平均值)。
- 我根据 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 购买力平价常见问题解答
计算基于在线提供的公开数据,因此请不要个人认为! 通过考虑过去 5 年的平均 PPP 值,我已经尽力了。 如果您仍然认为计算不公平,请在下面发表评论,让我们谈谈。 我们仍处于测试阶段。
这些将永远是在线商务的一部分。 我可能会让一些人进入随机计费国家以获得折扣——但我相信他们的订单会失败,因为 PayPal/Stripe 无法识别该国家。 如果此检查失败,则没有任何问题。 这些交易肯定会少于全世界现在能负担得起我课程的人数。
因为其他产品/订阅都低于 99 美元,我不能打折。 与 WooCommerce 咨询/开发相同——不幸的是,意大利的税收很高,我需要坚持我的小时费率。
给我几天/几周。 这将很快打包到一个迷你插件中,以便您可以将其应用于您自己的 WooCommerce 商店。
我知道您的痛苦,但请记住,您可以终生访问视频以及终生支持 WooCommerce 问题。 如果这还不够,我理解。 联系一下,我看看能不能帮忙。