WordPress注册用户自定义微信支付宝打赏二维码(简约实用版)

由于现在Wordpress广泛的实用,很多wp开发的站点不仅仅用于个人站长实用,随着国内移动支付的流行,打赏功能就被普遍的实用,有的wp开发的网站流量很大,就开放成了一个平台,为了鼓励注册用户原创文章,很多注册用户或者沾沾更希望打赏的作者可以是注册用户,而不仅仅是网站的管理员。

今天给大家一个简单使用的方法,当然可以按照传统的开发方法:

用户注册后可以自己上传二维码,然后前台对应每篇原作者显示注册用户的打赏码。

不过这种方法也有一个小问题,常常是用户传的图片可能不规范,为了让用户图片规范,可能又要把上传图片的能能更优化,这又增加了这个打赏功能的复杂度,对于我们这些很忙碌的人是没有时间去折腾的,好了,闲话少说,上我们自己的简约版方法吧:

首先你的网站已经有了打赏功能,就是那种只是给站长打赏的功能,网上有很多免费的插件,自己去下载安装。

然后修改打赏那块代码如下:

<?php if( (is_single() && _hui('post_rewards_s')) && ( _hui('post_rewards_alipay') || _hui('post_rewards_wechat') ) ){ ?>
	<div class="rewards-popover-mask" data-event="rewards-close"></div>
	<div class="rewards-popover">
		<h3><?php echo _hui('post_rewards_title') ?></h3>
		<?php if( _hui('post_rewards_alipay') ){ ?>
		<div class="rewards-popover-item">
			<h4>支付宝扫一扫打赏</h4>
			<?php
			$current_user = wp_get_current_user();  
			if ( 0 == $current_user->ID ) {  
			    echo '<img src="'._hui('post_rewards_alipay').'">'; 
			} else {
			    $url = 'http://blog.500tb.com/alipay-'.$current_user->ID.'.jpg';
			    if ( check_remote_file_exists($url) ) {
                    echo '<img src="'.$url.'">';
			    } else {
                    echo '<img src="http://blog.500tb.com/alipay-define.jpg">';
			    }
			}  
			?>
		</div>
		<?php } ?>
		<?php if( _hui('post_rewards_wechat') ){ ?>
		<div class="rewards-popover-item">
			<h4>微信扫一扫打赏</h4>
			<?php
			$current_user = wp_get_current_user();
			if ( 0 == $current_user->ID ) {
			    echo '<img src="'._hui('post_rewards_wechat').'">'; 
			} else { 
			    $url = 'http://blog.500tb.com/weixinpay-'.$current_user->ID.'.jpg';
			    if ( check_remote_file_exists($url) ) {
                    echo '<img src="'.$url.'">';
			    } else {
                    echo '<img src="http://blog.500tb.com/weixinpay-define.jpg">';
			    }
			    unset($ch);
			}  
			?>
		</div>
		<?php } ?>
		<span class="rewards-popover-close" data-event="rewards-close"><i class="glyphicon glyphicon-remove"></i></span>
	</div>
<?php } ?>

<?php
function check_remote_file_exists($url) {
	$curl = curl_init($url);
	curl_setopt($curl, CURLOPT_NOBODY, true);
	curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
	$result = curl_exec($curl);
	$found = false;
	if ($result !== false) {
		$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
		if ($statusCode == 200) {
			$found = true;
		}
	}
	curl_close($curl);
	return $found;
} 
?>

具体不累述了,其实逻辑很简单,就是对用户进行判断,然后根据用户是否登录,登录后用户的ID来显示不同的图片,对于图片的来源,我们暂时通过注册用户联系网站客服提交,然后网站客服审核通过后放在指定的位置。

当然这种超简单的方法只是对于流量不大的网站使用可以,用户注册量大的网站还是老老实实地去二次开发吧。

真实案例演示:http://blog.500tb.com

发表评论