为了账号安全,请及时绑定邮箱和手机立即绑定

在没有插件的情况下自定义 WooCommerce 产品数据标签 - 重量

在没有插件的情况下自定义 WooCommerce 产品数据标签 - 重量

PHP
幕布斯7119047 2022-07-29 09:14:56
我想在后端和前端将产品元标签从“重量”更改为“平方英尺”。我已经尝试了这个和几个 [数百] 变体但没有成功:add_filter( 'woocommerce_register_post_type_product', 'custom_product_labels' );function custom_product_labels( $args ) {    //    // change labels in $args['labels'] array    //    $args['labels']['_weight'] = 'Square Feet';    return $args;我已经成功地编辑了单位:add_filter( 'woocommerce_product_settings', 'add_woocommerce_dimension_units' );function add_woocommerce_dimension_units( $settings ) {  foreach ( $settings as &$setting ) {    if ( $setting['id'] == 'woocommerce_dimension_unit' ) {      $setting['options']['feet'] = __( 'ft' );  // foot    }    if ( $setting['id'] == 'woocommerce_weight_unit' ) {      $setting['options']['sq ft'] = __( 'sq ft' );  // square feet    }  }  return $settings;}但我仍然不知道如何挂钩测量标签来编辑它们。重要的是要注意,我不想添加“平方英尺”的元单位,因为我们已经有数千个产品在重量字段中填充了平方英尺数据。我的快速解决方法是在这些页面上找到实际代码并进行编辑。但这是一个糟糕的解决方案。woocommerce/includes/admin/meta-boxes/views/html-product-data-shipping.phpwoocommerce/includes/wc-formatting-functions.phpwoocommerce/includes/wc-template-functions.php编辑:这是一个显示使用的页面。 https://homedesigningservice.com/product/cape-house-plan-10034-cp/提前感谢您拯救了我融化的大脑。:-)
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

您可以使用此代码段


    add_filter( 'gettext', 'theme_change_comment_field_names', 20, 3 );


function theme_change_comment_field_names( $translated_text, $text, $domain ) {


                switch ( $translated_text ) {


                    case 'Weight' :


                        $translated_text = __( 'Square Feet', $domain );

                        break;


                    case 'weight' :


                        $translated_text = __( 'Square Feet', $domain );

                        break;

                }



            return $translated_text; 

    }

//img1.sycdn.imooc.com//62e339160001cf1d06590194.jpg

查看完整回答
反对 回复 2022-07-29
?
跃然一笑

TA贡献1826条经验 获得超6个赞

Woo 有一个用于前端的过滤器,但没有用于更改后端标签的过滤器。所以使用下面的代码,它不会与任何其他标签冲突...... Lakshman 的 gettext 将改变站点中任何地方的权重......


add_filter( 'woocommerce_display_product_attributes', 

 'prefix_change_weight_label_to_square_feet', 10, 2 );


 function prefix_change_weight_label_to_square_feet( $product_attributes, $product ) {


   // Change Weight to Square Feet

   $product_attributes[ 'weight' ]['label'] = __('Square Feet');


   return $product_attributes;

}


// edit WEIGHT label to SQUARE FEET


add_action( 'admin_footer', function(){


   $currentPostType = get_post_type();


   if( $currentPostType != 'product' ) return;

?>

   <script>

    (function($){

        $(document).ready(function(){

            if ( jQuery('label[for="_weight"]').length ) {


                jQuery('label[for="_weight"]').text("Square Feet");

            }

        });

    })(jQuery);

</script>


 <?php


});


查看完整回答
反对 回复 2022-07-29
  • 2 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信