B2功能很强大,前文简单介绍了Software License Manager插件的运行机制;在这里介绍一下怎么和B2主题结合。
查询Software License Manager插件我们能知道其官方已经给出了和WP eStore、WP Express Checkout插件结合的方案,但是都是收费的,免费的可以借助WC Software License Manager插件把Software License Manager和Woocommerce商城系统链接起来用Woocommerce来给用户分发许可码;也可以用EDD Software License Manager插件把Software License Manager和Easy Digital Downloads链接起来用Easy Digital Downloads来给用户分发许可码
动手
既然已经有前辈给出的示例,B2也有可用的钩子;我们就可以借鉴思路把Software License Manager插件和B2主题自带商城结合起来,用B2商城来分发许可就行了,WOO和EDD并不适合国内使用,B2的商城又很完善没必要再装一套商城系统
1、先给文章、商城编辑器添加自定义字段
文件位置:wp-content\themes\b2\Modules\Settings\Post.php;在该文件搜索post_download_settings
,在里面照葫芦画瓢添加SLM的自定义字段
$slm_post_meta = new_cmb2_box(array(
'id' => 'slm_post_metabox',
'title' => __( 'SLM许可码分发', 'b2' ),
'object_types' => array( 'post','document','shop','page'),/*在哪些页面显示*/
'context' => 'normal',
'priority' => 'high',
'show_names' => true,
));
$slm_post_meta->add_field(array(
'name' => __('启用软件授权','b2'),
'id' => 'slm_verify',
'type' => 'select',
'options'=>array(
1=>__('允许','b2'),
0=>__('禁止','b2')
),
'desc'=>__('如果启用购买结果将生成独立许可码。','b2'),
'default'=>0,
));
$slm_post_meta->add_field(array(
'name' => __('项目名称','b2'),
'id' => 'slm_item_name',
'type' => 'text',
'desc'=>__('输入项目名称。','b2'),
'default'=>'',
));
$slm_post_meta->add_field(array(
'name' => __('有效期(年)','b2'),
'id' => 'slm_buy',
'type' => 'text',
'desc'=>__('输入有效期的年数;输入 0 或留空将获得终身有效。','b2'),
'default'=>0,
));
$slm_post_meta->add_field(array(
'name' => __('允许的站点数量','b2'),
'id' => 'slm_sites',
'type' => 'text',
'desc'=>__('输入许可证密钥可以同时激活的站点数量;值必须大于 0','b2'),
'default'=>1,
));
![基于B2商城系统添加自己的授权机制](https://www.teelm.com/wp-content/uploads/2022/06/202206090541518869.png)
2、判断是否启用功能
如果启用则在用户执行完成购买操作后,用【b2_order_callback_gx】钩子通知Software License Manager插件生成许可码
<?php
add_filter('b2_order_callback_gx', 'b2_buy_licensn', 0,2);
function b2_buy_licensn($money,$data){
//购买成功以后在此执行slm_create_new操作新建许可
//$data 为订单信息
return $data;
}
?>
许可新建成功将通过主题通知邮件系统发送包含许可码的邮件
![基于B2商城系统添加自己的授权机制](https://www.teelm.com/wp-content/uploads/2022/06/202206100611484562.png)
3、应用到项目中
完成上面步骤后用户购买将生成相应的独立许可码,我们只需要通过Software License Manager插件提供的API端口进行查询验证就好了
![基于B2商城系统添加自己的授权机制](https://www.teelm.com/wp-content/uploads/2022/06/202206100632129406.png)
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。