启用基于客户位置的付款方式

2024-02-04

我不知道是否可能,但是,我们需要为巴塞罗那添加一些不同的付款方式。

因此,我们的想法是,如果客户居住在巴塞罗那地区(加泰罗尼亚),他将看到与西班牙其他地区不同的信用卡付款方式和银行转账账户。

WooCommerce 可以做到这一点吗?

Thanks.


如果您想在 WooCommerce 中启用此类功能, 客户需要注册并登录首先,因为这是在结账过程之前获取他们城镇位置的唯一方法。

此外,您还必须更改 WooCommerce 中的一些设置,仅允许注册用户结账。

然后,您必须在注册过程中添加一些必填字段,如城镇、邮政编码和国家/地区。

完成后,根据注册的客户字段启用/禁用支付网关将变得很容易。

1) 自定义注册字段:
如何在“我的账户”页面的用户注册中添加自定义字段 https://claudiosmweb.com/2016/03/24/how-to-add-custom-fields-in-user-registration-on-the-my-account-page/

2) 对于基于此客户信息的支付网关/方法,您可以在woocommerce_available_payment_gateways过滤钩:

add_filter( 'woocommerce_available_payment_gateways', 'custom_payment_gateways_process' );
function custom_payment_gateways_process( $available_gateways ) {
    // Not in backend (admin)
    if( is_admin() ) 
        return $available_gateways;

    if ( is_admin() || !is_user_logged_in() )
        return $available_gateways;

    $current_user_id = get_current_user_id();
    $user_meta = get_user_meta( $current_user_id );

    // User City, Postcode, State and Country code 
    $user_city = $user_meta['billing_city'];
    $user_postcode = $user_meta['shipping_postcode'];
    $user_State = $user_meta['shipping_state'];
    $user_country = $user_meta['shipping_country'];

    // Disable Cash on delivery ('cod') method example for customer out of spain:
    if ( isset( $available_gateways['cod'] ) && $user_country != 'ES' ) {
        unset( $available_gateways['cod'] );
    }

    // You can set many conditions based on the user data

    return $available_gateways;
}

此代码只是一个示例,您必须为目标支付方式/网关设置正确的条件……

代码位于活动子主题(或主题)的functions.php 文件中或任何插件文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

启用基于客户位置的付款方式 的相关文章

随机推荐

  • 从文件而不是备份“挂载”PostgreSQL 数据库

    我接到一个从 PostgreSQL 数据库中提取数据的项目 我以前没有使用 PostgreSQL 的经验 但我的项目是修复现有代码的错误 因此连接到引擎并获取数据的所有逻辑都已经就位 我遇到的问题是数据库以直接来自源 HDD 的文件夹和文件
  • 如何删除actionscript中字符串的一部分?

    所以我的字符串类似于 BlaBlaBlaDDDaaa2aaa345 我想摆脱它的子字符串 BlaBlaBlaDDD 所以操作的结果将是一个字符串 aaa2aaa345 如何使用动作脚本执行这样的事情 我只想用字符串 替换 http live
  • 无法使用 pymssql 连接到 SQL Server 数据库,但可以使用底层 freetds tsql 连接

    我不知道为什么会收到此错误 并且找不到任何解决方案 我可以使用 freetds tsql 连接到 SQL Server 数据库 但在使用连接时不断收到错误pymssql connect 具体错误是 pymssql OperationalEr
  • 类型错误:无法读取未定义的属性“消息” - Twitter API

    以下是运行 app js 时的输出 当一切正常时 这种情况完全随机发生 绝对没有做任何改变 TypeError Cannot read property message of undefined at home ec2 user envir
  • 颤动键盘完成按钮导致文本字段内容消失

    我的表单中有 2 个文本字段 当我单击第二个文本字段中键盘上的 完成 按钮时 键盘会隐藏 两个文本字段都会变空 当我手动关闭键盘时也会发生同样的情况 然后文本字段的内容也会丢失 看起来每次发生这种情况屏幕都会刷新 为什么会这样呢 overr
  • Android - Matcher.find() 无限

    我已经实现了 AsyncTask 其中用户提供的正则表达式用于匹配巨大的 html 代码数据 然而 由于某些正则表达式包含大量量词 回溯 Matcher find 会变得无限 我尝试过使用可中断字符序列此处提供 当 Matcher find
  • Spring Boot 令牌认证

    我尝试为另一个应用程序登录 Spring Boot 应用程序并使用 Spring Security 生成令牌 我试图实现的目标 用户名和密码发送到 REST 控制器 如果用户名和密码正确 我想生成具有 30 分钟过期时间的令牌并将其发送回用
  • ASP.NET 站点地图,有多重要?

    我的网站已经完成了 至少我是这么想的 我没有站点地图 奇迹般地我错过了站点地图的整个概念 甚至不知道它是一件事 我想我要向我的计算机老师大喊一声 我一直在阅读它 动态生成站点地图似乎相当复杂 我必须这样做 因为我的页面基本上只是一个使用参数
  • WPF:如何创建自定义项目控制面板?

    我想设计一个自定义项目控制面板ListBox 有3个要求 It should have the properties int rows and int columns which would define the matrix of cel
  • 设置 DOWNLOAD_DELAY 时 scrapy CONCURRENT_REQUESTS 被忽略?

    查看 scrapy 统计数据 Crawled X pages at X pages min 在我看来 一旦 例如 DOWNLOAD DELAY 4 5 设置后 请求将变为连续的 无论什么CONCURRENT REQUESTS塞特林群岛 根据
  • 如何读取匿名类型的属性?

    我有一个返回的方法 return new System Web Mvc JsonResult Data new Status OK 我需要编写一个单元测试来验证这一点jsonResult Data status OK 如何读取状态属性 更新
  • couchDB 中的链式映射/归约

    在 couchDB 中 我有一组如下所示的项目 为了示例而简化 id 1 date Jul 1 user user1 id 2 date Jul 2 user user1 id 3 date Jul 3 user user2 etc 我想获
  • 实体框架修改分离对象

    我有一些困惑 源于此http msdn microsoft com en us library vstudio bb896248 v vs 100 aspx http msdn microsoft com en us library vst
  • Laravel 检查用户电子邮件是否已验证

    您好 我想检查用户电子邮件是否仅在控制器中的一个功能中进行验证 我不想在中间件或路径中设置检查 如下所示 public function construct this gt middleware verified 因为控制器可供访客访问 所
  • 没有分支或移位的绝对值,只有加/减和布尔值

    我们在学校为想要自我测试的学生遇到了这个问题 我在这方面花了相当长的时间 但无法弄清楚 AX 寄存器中有 16 位数字 该数字是有符号的 得到它的 绝对值 AX中的数字必须不变 编辑 寄存器数量没有限制 并且 AX 寄存器可以更改 但在函数
  • Azure API应用程序的IP地址以及如何限制IP

    我已经部署了用 Java Servlet 编写的 API 应用程序 我想知道的是 我的 API 应用程序的 IP 地址以及仅允许来自一两个 IP 地址的请求的方式 这意味着我想限制除这些 IP 之外的所有 IP 似乎一旦我在一个地区部署多个
  • Eclipse 上的自动代码完成

    我希望 Eclipse 在我编写一些变量 类名称或关键字时自动向我建议所有可能的选项 就像在 Flash Develop 或 Visual Studio 中一样 是否可以 如果没有 我可以使用哪个 Java IDE 获得这个 I m spe
  • SQL 和唯一的 n 列组合

    Oracle 有没有一种简单的方法来查询 n 个字段的唯一组合 我有非常简单的两场解决方案 CREATE TABLE combinations AS SELECT 1 AS n FROM DUAL UNION ALL SELECT 2 FR
  • 如何使用 ng-style 设置 li:before 的 css

    我想用可变范围 宽度 更改 li before 的宽度值 ul li span step stepName uppercase span li ul 我正在执行这段代码 但它不起作用 请帮助 不幸的是你不能拥有pseudoelements
  • 启用基于客户位置的付款方式

    我不知道是否可能 但是 我们需要为巴塞罗那添加一些不同的付款方式 因此 我们的想法是 如果客户居住在巴塞罗那地区 加泰罗尼亚 他将看到与西班牙其他地区不同的信用卡付款方式和银行转账账户 WooCommerce 可以做到这一点吗 Thanks