woocommerce添加占位符文本以编辑帐户表单

时间:2018-04-08 12:58:03

标签: php wordpress woocommerce

我正在定制我的店面儿童主题,并最终设法定位所有的woocommerce表单,仅显示占位符文本除了form-edit-account上的字段,无论我尝试过多少都不会改变(很多)。我想过将该模板复制到我的子主题并进行更改但不确定正确的方法。非常感谢任何帮助 - 我是一个复制贴纸而不是开发人员。

functions.php文件中使用的代码片段:

    //placeholder text
    add_filter( 'woocommerce_form_field_args', 'custom_form_field_args',      10, 3 );
    function custom_form_field_args( $args, $key, $value ) { 
       if ( $args['id'] == 'billing_first_name' ) {
          $args['placeholder'] = 'FIRST NAME';
       } elseif ( $args['id'] == 'billing_last_name' ) {
           $args['placeholder'] = 'LAST NAME';
       } elseif ( $args['id'] == 'shipping_state' ) {
           $args['placeholder'] = 'State';
       } elseif ( $args['id'] == 'account_first_name' ) {
           $args['placeholder'] = 'FIRST NAME';
       } elseif ( $args['id'] == 'account_last_name' ) {
           $args['placeholder'] = 'LAST NAME';
       } elseif ( $args['id'] == 'account_email' ) {
           $args['placeholder'] = 'email';  
       } elseif ( $args['id'] == 'account_password_current' ) {
           $args['placeholder'] = 'password':
       } elseif ( $args['id'] == 'account_password_1' ) {
           $args['placeholder'] = 'new password';   
       } elseif ( $args['id'] == 'account_password_2' ) {
           $args['placeholder'] = 'confirm password';
       }

       return $args;
    };

等等虽然每个“发货”,“结算”和“帐户”ID。

css用于隐藏标签

    .woocommerce form .form-row label {
     position: absolute;
     width: 1px;
     height: 1px;
     padding: 0;
     margin: -1px;
     overflow: hidden;
clip: rect(0,0,0,0);
border: 0;

}

可以在https://github.com/woocommerce/woocommerce/blob/master/templates/myaccount/form-edit-account.php

找到该模板

我测试了直接编辑模板如下(只是为了看看它是否可行,它确实如此)但不确定这是否是正确的编写方式,如果是这样,它应该放在我的子主题文件夹中吗? 代码原样:

    <p class="woocommerce-form-row woocommerce-form-row--first form-row form-row-first">
    <label for="account_first_name"><?php esc_html_e( 'First name', 'woocommerce' ); ?> <span class="required">*</span></label>
    <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="account_first_name" id="account_first_name" value="<?php echo esc_attr( $user->first_name ); ?>" />
</p>

我在id之后将其插入输入类型行,但这是正确的方法吗?

    placeholder="First name"

谢谢!

2 个答案:

答案 0 :(得分:0)

您遇到语法错误,用冒号代替分号:

$args['placeholder'] = 'password':

应为:

$args['placeholder'] = 'password';

我不确定这是否有帮助,但是...

另外,如果您有很多不同的可能性,请考虑使用switch而不是if循环,它更具可读性:

<?php

switch( $args['id']) {

  case 'billing_first_name':
    $args['placeholder'] = 'FIRST NAME';
    break;

  case 'billing_last_name':
    $args['placeholder'] = 'LAST NAME';
    break;

  // ...
}

对不起,我真的在这里寻找类似的答案(在WooCommerce审核表单字段上设置占位符)。

答案 1 :(得分:0)

使用以下功能在palceholder中复制标签

function custom_form_field_args( $args, $key, $value ) {
        $args['placeholder'] = $args['label'];
        return $args;
    };
    add_filter( 'woocommerce_form_field_args', 'custom_form_field_args',      10, 3 );

,然后如果要使用此CSS隐藏所有标签

.woocommerce form .form-row label {
     position: absolute;
     width: 1px;
     height: 1px;
     padding: 0;
     margin: -1px;
     overflow: hidden;
    clip: rect(0,0,0,0);
border: 0;
}