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

文 / @WordPress主题

小本本的自我介绍

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

定义表单字段

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

<?php $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'=>'输入框的CSSClass',
   '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'];

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

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。