使用方法:
- 一共有两种方式去实现这个功能,手动修改代码、替换已修改好的文件
- 主要定位文件:\zibll\zibpay\functions\zibpay-vip.php和\zibll\inc\options\options-module.php
- 无论是修改还是覆盖请提前备份原文件,小白请勿购买!
- 我在手动修改代码和直接替换文件里都给出了具体的使用方法!
使用说明:
- 该功能只有在开通会员的时候会额外赠送所设置的会员月数,升级和续费不会额外赠送所设置的会员月数
- 完全萌新的请勿购买、该教程需要有一定代码基础
手动修改代码:
定位文件:\zibll\inc\options\options-module.php
找到public static function vip_product()即可《大概499行》
public static function vip_product()
{
return array(
array(
'id' => 'price',
'title' => '执行价',
'default' => '699',
'type' => 'number',
'unit' => '元',
),
array(
'id' => 'show_price',
'title' => '原价',
'desc' => '显示在执行价格前面,并划掉',
'default' => '999',
'type' => 'number',
'unit' => '元',
'class' => 'compact',
),
array(
'id' => 'tag',
'title' => '促销标签',
'class' => 'compact',
'desc' => '支持HTML,请注意控制长度',
'attributes' => array(
'rows' => 1,
),
'type' => 'textarea',
),
array(
'dependency' => array('tag', '!=', ''),
'title' => '标签颜色',
'id' => "tag_class",
'class' => 'compact skin-color',
'default' => "jb-yellow",
'type' => "palette",
'options' => CFS_Module::zib_palette(),
),
array(
'dependency' => array('time', '==', 0),
'type' => 'submessage',
'style' => 'success',
'content' => '<strong>会员有效时间已设置为:<code>永久会员</code></strong>',
),
array(
'title' => '会员有效时间',
'id' => 'time',
'class' => 'compact',
'desc' => '开通会员的时长。填<code>0</code>则为永久会员',
'default' => 3,
'max' => 36,
'min' => 0,
'step' => 1,
'unit' => '个月',
'type' => 'spinner',
),
array(
'title' => '赠送会员时间',
'id' => 'time_gift',
'class' => 'compact',
'desc' => '赠送给会员的额外时间。填<code>0</code>表示不赠送额外时间。',
'default' => 0,
'max' => 36,
'min' => 0,
'step' => 1,
'unit' => '个月',
'type' => 'spinner',
),
);
}
定位文件:\zibll\zibpay\functions\zibpay-vip.php
找到:function zibpay_uservip_paysuccess($values)《大概518行》
/**付款成功后后更新用户数据 */
function zibpay_uservip_paysuccess($values)
{
$pay_order = $values;
if (empty($pay_order->user_id) || empty($pay_order->product_id) || 4 != $pay_order->order_type) {
return;
}
$vip_product_id = explode("_", $pay_order->product_id);
if (!isset($vip_product_id[0]) || !isset($vip_product_id[1]) || !isset($vip_product_id[2]) || 'vip' != $vip_product_id[0]) {
return;
}
$pay_vip_level = (int) $vip_product_id[1];
$pay_vip_product = (int) $vip_product_id[2];
$pay_vip_action = $vip_product_id[3];
//获取用户本来的会员等级
$type_text = '购买会员';
$user_id = $pay_order->user_id;
$user_vip_level = zib_get_user_vip_level($user_id);
$user_vip_exp_date = get_user_meta($pay_order->user_id, 'vip_exp_date', true);
$new_date = current_time('Y-m-d h:i:s');
// 赠送会员时间
$time_gift = (int) _pz('vip_opt', '', 'vip_' . $pay_vip_level . '_product')[$pay_vip_product]['time_gift'];
if ('renew' == $pay_vip_action) {
//续费
$type_text = '续费会员';
$renew_product_args = zibpay_get_vip_renew_product($pay_vip_level);
$pay_vip_time = $renew_product_args[$pay_vip_product]['time'];
if ('Permanent' == $pay_vip_time) {
//永久会员选项
$new_vip_exp_date = 'Permanent';
} else {
//续费根据用户现有时间追加
$new_vip_exp_date = date("Y-m-d 23:59:59", strtotime("+" . ($pay_vip_time + $time_gift) . "months", strtotime($user_vip_exp_date)));
}
} elseif ('upgrade' == $pay_vip_action) {
//升级
$type_text = '升级会员';
$upgrade_product_args = zibpay_get_vip_upgrade_product($user_id);
$pay_vip_time = $upgrade_product_args[$pay_vip_product]['time'];
$new_vip_exp_date = 'Permanent' == $pay_vip_time ? 'Permanent' : $user_vip_exp_date;
} else {
//购买会员的商品选项
$pay_product_args = (array) _pz('vip_opt', '', 'vip_' . $pay_vip_level . '_product');
$pay_vip_time = (int) $pay_product_args[$pay_vip_product]['time'];
if (0 == $pay_vip_time) {
//永久会员选项
$new_vip_exp_date = 'Permanent';
} else {
$new_vip_exp_date = date("Y-m-d 23:59:59", strtotime("+" . ($pay_vip_time + $time_gift) . "months", strtotime($new_date)));
}
}
$data = array(
'vip_level' => $pay_vip_level, //等级
'exp_date' => $new_vip_exp_date, //有效截至时间
'type' => $type_text, //中文说明
'order_num' => $pay_order->order_num, //订单号
'desc' => '', //说明
);
zibpay_update_user_vip($user_id, $data);
}
add_action('payment_order_success', 'zibpay_uservip_paysuccess', 9);
直接替换文件:
使用方法:
- 解压开通会员额外赠送会员.zip得到两个文件,zibpay-vip.php和options-module.php
- 然后将两个文件按照下面路径去上传覆盖
- \zibll\zibpay\functions\zibpay-vip.php和\zibll\inc\options\options-module.php
- 不懂啥叫覆盖的请百度或者请勿购买
- 纯萌新可以有偿帮你解决
© 版权声明
THE END
暂无评论内容