如何使用WooCommerce搭建一个自动虚拟卡密发货网站

导语:最近要用WooCommerce做一个虚拟卡密的网站,我们希望到达的效果是,用户通过WooCommerce付款成功后,然后自动跳转到取卡密的页面。在WooCommerce中配置虚拟商品没有问题,就是卡在付款跳转到取卡密页面的问题上,下面就说说这个问题的解决方法。

如何跳转虚拟商品取卡密页面上

为了方便调试建议大家先装一个 test gateway for woocommerce 的插件,这个插件可以在WordPress的官网上搜索到,它的作用就是可以通过测试支付网关马上完成付款,不需要每次都用支付宝或贝宝来付款测试。

面临的问题

现在面临的问题是我们可以在产品中设置虚拟产品,虚拟产品设置很简单,勾选虚拟商品选项就可以了,但它没有地方来配置卡密,当我们购买虚拟产品支付完成后,跳转到的页面是WooCommerce的thankyou.php所生成的页面,没有办法获得卡密。

解决方法

所以,现在有两种思路,一种是修改thankyou.php,让它具有从数据库来获取卡密的功能。第二种就是,自己写一个取卡密的页面,然后支付完成后,直接跳转到这个页面。

第一种方法,我们没有试试过,只是设想:)。我们使用了第二种方法,跳转到自己的卡密页面。

至于怎么样来生成卡密,这个问题在这里就不说了,只说说支付完成后怎么跳转。

实现代码

将下面的代码放置在functions.php里就可以实现跳转。

function wcs_redirect_product_based ( $order_id ){
	$order = wc_get_order( $order_id );
	foreach( $order->get_items() as $item ) {
		$_product = wc_get_product( $item['product_id'] );
		// 添加你自己的虚拟卡密产品的product_id
		if ( $item['product_id'] == 44 ) {
		// 将下面的链接改成你自己需要的链接
		   wp_redirect('https://www.wordpressleaf.com/);
		}
	}
}
add_action( 'woocommerce_thankyou', 'wcs_redirect_product_based' );

这段代码的作用就是当你的虚拟产品支付完成后,会跳转到自己定义的取卡密页面上去。

结束

WooCommerce的资料真的很少,本文参考网址,WooCommerce下单付款后的页面

目前在“如何使用WooCommerce搭建一个自动虚拟卡密发货网站”上有2条评论

  1. 博主你好,我现在也正在研究WOOCOMMERCE卡密的情况,你是如何限制每个卡密只能调用一次的呢,能分享研究一下你写的插件吗?付费的,qq1323280084,非常感谢

    1. 我是根据订单号来判断的,如果某一个付费了的订单号在卡密表里面有了,就不要再生成卡密了。

编辑 杨进行回复 取消回复

邮箱地址不会被公开。 必填项已用*标注