Woocommerce:一次删除所有表单标签

Posted

技术标签:

【中文标题】Woocommerce:一次删除所有表单标签【英文标题】:Woocommerce: remove all form labels at once 【发布时间】:2014-10-16 00:41:22 【问题描述】:

我正在使用 WooCommerce 建立一个网上商店。

确定的表单格式是没有标签,只有占位符。我一直在像这样删除标签:

<?php

// WooCommerce Checkout Fields Hook
add_filter( 'woocommerce_checkout_fields' , 'custom_wc_checkout_fields' );

// Change the format of fields with type, label, placeholder, class, required, clear, label_class, options
function custom_wc_checkout_fields( $fields ) 

//BILLING
$fields['billing']['billing_first_name']['label'] = false;

return $fields;

?>

但由于我不想在任何地方添加标签,我想知道是否有办法一次性删除所有标签。而不是单独浏览它们。有人有想法吗?

谢谢!


编辑:

我意识到这可以通过添加一些 css(display none) 来实现,但由于这不是一个非常干净的解决方案,我想知道是否有其他方法可以实现这一点。

【问题讨论】:

【参考方案1】:

您可以通过添加以下内容来使用 css 执行此操作,除此之外我不知道有一种方法可以一次删除所有标签。

.woocommerce form.checkout label 

    display: none;

【讨论】:

感谢您的回答。我已经想到了这一点,但我想知道是否没有其他方法,因为这不是一个非常干净的解决方案。 我可能是错的,但我认为它要么是 display:none 要么是列出每个字段。我以前需要自己隐藏标签,但找不到简单的方法 这比取消设置要好,因为取消设置会隐藏字段字符串,以防必填字段未填写。【参考方案2】:

您可以使用unset 删除任何$field-&gt;property。 好的阅读和参考可以在这里找到:Customizing checkout fields using actions and filters

现在,对于如何在全球范围内执行此操作的问题,您可以使用 loop,例如:

// WooCommerce Checkout Fields Hook
add_filter('woocommerce_checkout_fields','custom_wc_checkout_fields_no_label');

// Our hooked in function - $fields is passed via the filter!
// Action: remove label from $fields
function custom_wc_checkout_fields_no_label($fields) 
    // loop by category
    foreach ($fields as $category => $value) 
        // loop by fields
        foreach ($value as $field => $property) 
            // remove label property
            unset($fields[$category][$field]['label']);
        
    
     return $fields;

在线示例:http://codepad.org/drvBYYS8 与已接受答案中的好建议相关:WooCommerce Change Form Labels and Remove Fields

【讨论】:

取消设置将隐藏字段字符串,以防必填字段未填写。 你应该使用$value而不是$fields[$category] @Mr.Jo 同意,可以在 foreach 上,但不能在 unset 上(在此示例中将超出范围),除非再次创建整个数组内容。有多种方法可以完成它,这是为了演示目的而编写的,以清楚地了解目标是访问/循环数组以删除/取消设置label @gmo 我的意思是在 foreach 中。取消设置是正确的。

以上是关于Woocommerce:一次删除所有表单标签的主要内容,如果未能解决你的问题,请参考以下文章

php [WooCommerce Core]删除WooCommerce页面上的面包屑(On Woo主题)

php [WooCommerce Core]删除WooCommerce页面上的面包屑(On Woo主题)

php [WooCommerce Core]删除WooCommerce页面上的面包屑(On Woo主题)

php [WooCommerce Core]删除Woo主题中的面包屑(非店面)

php [WooCommerce Core]删除Woo主题中的面包屑(非店面)

php [WooCommerce Core]删除Woo主题中的面包屑(非店面)