基于B2商城系统添加自己的授权机制

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'),
            '