在WooCommerce Checkout页面的输入字段下显示说明

时间:2014-04-12 16:50:51

标签: php wordpress woocommerce

场景 - 我们正在开发一个仅适用于慈善机构的特定WooCommerce网站。因此,在结帐页面上,我们想将“公司名称”更改为“慈善名称”

我们已经通过以下代码实现了目标。 -

add_filter( 'woocommerce_billing_fields', 'custom_woocommerce_billing_fields' );
function custom_woocommerce_billing_fields( $fields ) {
$fields['billing_company']  = array(
'label' => __('Charity Name', 'woothemes'),
'placeholder' => __('Charity Name', 'woothemes'),
'required' => true,
'class' => array('billing-company'),

);
return $fields;
}

这会更改字段名称,但我们需要在标签下方显示的说明 - “请输入您慈善机构的全名”

我们尝试添加行

'description' => __( 'Please enter the full name of your Charity', 'woothemes' ) 

但是,它似乎无法正常工作或显示在页面上甚至代码中。

有人可以用同样的方式指导我。

提前谢谢。

2 个答案:

答案 0 :(得分:2)

这个文档没有很好的记录,但这些是woocommerce_form_field()函数的默认字段,即传递数组的位置,因此您可以确定可能的键。它位于includes/wc-template-functions.php

$defaults = array(
    'type'              => 'text',
    'label'             => '',
    'placeholder'       => '',
    'maxlength'         => false,
    'required'          => false,
    'class'             => array(),
    'label_class'       => array(),
    'input_class'       => array(),
    'return'            => false,
    'options'           => array(),
    'custom_attributes' => array(),
    'validate'          => array(),
    'default'           => '',
);

此方法无法附加您自己的HTML,但您可以使用custom_attributes(保存文字说明)和input_class来破解它(告诉jQuery使用此方法)附加到DOM)选项。

  • 添加CSS类和自定义属性以保存jQuery的值

    add_filter( 'woocommerce_billing_fields', 'custom_woocommerce_billing_fields' );
    function custom_woocommerce_billing_fields( $fields ) {
        $fields['billing_company']  = array(
            'label' => __('Charity Name', 'woothemes'),
            'placeholder' => __('Charity Name', 'woothemes'),
            'required' => true,
            'class' => array('billing-company'),
            'custom_attributes' = array( 'item-description'=>'YOUR DESCRIPTION' ),
            'input_class' = array( 'append-description' ),
        );
        return $fields;
    }
    
  • 使用jQuery将CSS类用作选择器并获取说明

    jQuery('.append-description').each(function(){
        var item = jQuery(this);
        var description = item.attr('item-description');
        item.parent().append('<div>'+description+'</div>');
    });
    

请注意上述代码未经测试且可能无效,请以实施为例。

答案 1 :(得分:0)

现在提供说明。您可以添加一个,它将在下面显示为span =“description”。