使用 WooCommerce Setting Api 接口为 WooCommerce 添加自定义设置选项

使用 WooCommerce Setting Api 接口为 WooCommerce 添加自定义设置选项

使用 WooCommerce Setting Api 接口为 WooCommerce 添加自定义设置选项

在开发 WooCommece 主题或插件的时候,我们经常需要设置一些数据,比如做支付插件的时候,我们需要保存支付网关的一些数据到数据库中,这时候,我们就需要用到 WooCommerce 的设置接口来为插件增加一些设置选项了,WooCommerce 的设置 Api 使用起来非常简单,和我们常用的 WordPress 字段插件很类似。WooCommerce 的整个设置选项就是通过设置 Api 实现的。下面我们来看一下怎么使用 WooCommerce 设置 Api 增加设置选项。

定义表单字段

我们可以使用 init_form_fields 方法在类构造器中定义设置选项字段:

$this->init_form_fields();

加载设置之前,我们必须已经定义了该设置,定义设置的代码示例如下,我们只需要设置一个 form_fields 数组就可以了。

/**
 * 初始化网关设置表单字段
 */
 function init_form_fields() {
     $this->form_fields = array(
     'title' => array(
          'title' => __( '标图', 'woocommerce' ),
          'type' => 'text',
          'description' => __( '用户结账时看到的支付网关标题', 'woocommerce' ),
          'default' => __( '支付宝支付', 'woocommerce' )
          ),
     'description' => array(
          'title' => __( '描述', 'woocommerce' ),
          'type' => 'textarea',
          'description' => __( '用户结账时看到的支付网关描述', 'woocommerce' ),
          'default' => __("使用支付宝支付,安全又便捷。", 'woocommerce')
           )
     );
}

在上面的示例代码中,我们定义了两个选项 – 标题和描述。标题是一个文本字段,描述是一个多段文本字段,注意上面代码中设置默认值和选项的方法,我们可以添加各种表单类型的选项,下面是支持的表单类型格式:


'option_name' => array(
     'title' => '设置页面的标题',
     'description' => '设置页面的描述信息',
     'type' => 'text|password|textarea|checkbox|select|multiselect',
     'default' => '选项的默认值',
     'class' => '输入框的 CSS Class',
     'css' => ' 输入框的 CSS 样式',
     'label' => 'Label', //  只有类型为 checkbox 时使用
     'options' => array(
          'key' => 'value'
     )
)

显示管理选项

创建一个名为 admin_options 的方法,包含以下代码:

function admin_options() {
 ?>
 <h2><?php _e('插件名称','woocommerce'); ?></h2>
 <table class="form-table">
 <?php $this->generate_settings_html(); ?>
 </table> <?php
 }

上面的代码将以正确的格式输出我们的设置。

保存管理选项

有了更设置选项输入界面,我们还需要保存设置选项到我们的数据库中,只需要把我们保存数据的方法挂载到 process_admin_options 钩子上即可。WooCommerce 支付网关挂载到网关保存动作上:

add_action('woocommerce_update_options_payment_gateways', array(&$this, 'process_admin_options'));
add_action('woocommerce_update_options_shipping_methods', array(&$this, 'process_admin_options'));

加载设置

保存了设置后,我们就可以加载我们已经保存的设置了:

// 加载设置
$this->init_settings();

完成上面工作后,我们可以从设置API中加载 设置值 – 上面的 init_settings 方法会自动处理设置值。

// 定义用户设置的变量
$this->title = $this->settings['title'];
$this->description = $this->settings['description'];

学会通过 Settings API 为 WooCommerce 添加自定义设置选项是通过 WooCommerce 高级开发的必经之路,对 WooCommerce 开发有兴趣,想在这方便深入发展的,可以深入了解尝试一下。如果在开发过程中遇到了问题,欢迎在评论中提出讨论。

本站提供 WordPress 主题定制开发服务

本站长期承接 WordPress 主题、插件、基于 WooCommerce 的商店商城开发业务。 我们有 8 年 WordPress 开发经验,如果你想 用 WordPress 开发网站, 请联系 QQ: 470266798,或邮箱: 4626395@gmail.com 咨询。

发表评论

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

*