我正在定制我的店面儿童主题,并最终设法定位所有的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"
谢谢!
答案 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;
}