hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - cms - 正文 君子好学,自强不息!

【WordPress建站】如何获取和修改WooCommerce支付网关

2019-11-13cms搜奇网33°c
A+ A-

文章目录[隐藏]

  • 获取支付网关
    • 所有已安装的支付方式
    • 仅可用网关
  • 删除WooCommerce默认支付网关
  • 无可用网关时强制使用特定支付网关

在本文中,我想与您分享一些有用的函数,这些函数可用于WooCommerce商店中的支付网关。

您可以在“结帐”选项卡下的WooCommerce>“设置”中找到所有已安装的支付网关。
在屏幕截图上,您可以看到Stripe,PayPal,PayPal网站付款专业版等。

您可以在 woocommerce/includes/class-wc-payment-gateways.php 文件中找到以下所有函数和挂钩。

获取支付网关

在这里,我将向您展示如何使用两个类方法WC()->payment_gateways->payment_gateways()WC()->payment_gateways->payment_gateways()

所有已安装的支付方式

默认情况下,WooCommerce已安装4个付款网关:BACS,支票付款,货到付款和PayPal。可以使用插件安装其他付款方式。通常,如果激活了插件-已安装网关,则可以在商店设置中找到它。

$installed_payment_methods = WC()->payment_gateways->payment_gateways();

此类的方法返回WooCommerce商店上已安装的所有支付网关的对象。内部数据是什么?使用print_r()打印结果,您就会知道。

$installed_payment_methods = WC()->payment_gateways->payment_gateways();
print_r( $installed_payment_methods );

在下面的示例中,让我们尝试打印支付网关的名称:

$installed_payment_methods = WC()->payment_gateways->payment_gateways();
 
foreach( $installed_payment_methods as $method ) {
	echo $method->title . '<br />';
}

此方法还具有过滤器woocommerce_payment_gateways,使您可以完全删除任何WooCommerce默认支付网关。请阅读以下内容。

仅可用网关

WooCommerce直接在结帐页面上以及在处理付款时获取付款方式时会使用此方法。因此,如果在商店设置中未启用特定的付款方式,则不会显示该付款方式。

$available_payment_methods = WC()->payment_gateways->get_available_payment_gateways();

返回结果类似于WC()->payment_gateways->payment_gateways()。它还具有一个过滤器woocommerce_available_payment_gateways,如下所述。

删除WooCommerce默认支付网关

如果我们要删除WooCommerce的一些默认支付网关,比如 BACS、Check Payments、货到付款 和 PayPal,可以参考下面的代码:

function misha_remove_default_gateway( $load_gateways ){
 
	unset( $load_gateways[0] ); // WC_Gateway_BACS
	unset( $load_gateways[1] ); // WC_Gateway_Cheque
	unset( $load_gateways[2] ); // WC_Gateway_COD (Cash on Delivery)
	//unset( $load_gateways[3] ); // WC_Gateway_Paypal
 
	return $load_gateways;
}
 
add_filter( 'woocommerce_payment_gateways', 'misha_remove_default_gateway', 10, 1 );

将代码插入当前主题的functions.php,然后转到商店结帐设置。

结果,您将看到仅保留PayPal网关

无可用网关时强制使用特定支付网关

什么时候需要这个?

让我从生活中描述情况。我的客户有一个基于订阅的网站,安装了 WooCommerce Memberships 和WooCommerce Subscriptions 插件。作为支付网关,我们使用了Stripe。但是发生了Stripe停止与他的公司合作的情况。之后,我们停用Stripe插件,即使我们安装了其他支付网关,WooCommerce也不允许现有订阅者使用其他支付网关续订其订阅。这是不可接受的。

下面的一小段代码拯救了我们。

/*
 * 无可用网关时,强制使用 PayPal Payflow
 */
function misha_change_wc_gateway_if_empty( $allowed_gateways ){
 
	if( empty( $allowed_gateways ) ) {
		$allowed_gateways = array();
		$all_gateways = WC()->payment_gateways->payment_gateways();
		$allowed_gateways['paypal_pro_payflow'] = $all_gateways['paypal_pro_payflow'];
	}
 
	return $allowed_gateways;
 
}
add_filter('woocommerce_available_payment_gateways','misha_change_wc_gateway_if_empty', 9999, 1 );

如果您想开发一个自定义的支付网关,可以看教程《 为WooCommerce创建一个支付网关插件 》。

如果您对 WooCommerce 的使用还不太了解,或者想系统学习 WooCommerce 开发,可以学习教程《WooCommerce 开发指南视频课程(使用详解/主题开发/支付宝网关开发)》。

声明:原文出自 https://rudrastyh.com/woocommerce/get-and-hook-payment-gateways.html ,由ki4翻译整理,转载请保留本声明。

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
【WordPress建站】如何获取和修改WooCommerce支付网关

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/281531.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>