首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Woocommerce命令中将格式化的地址状态代码更改为州名

在Woocommerce命令中将格式化的地址状态代码更改为州名
EN

Stack Overflow用户
提问于 2018-09-06 16:38:44
回答 1查看 1.8K关注 0票数 2

而不是两个字母的州缩写,我想显示全州名称。

在这个页面上/plugins/woocommerce/includes/admin/meta-boxes/class-wc-meta-box-order-data.php

代码语言:javascript
复制
<div class="order_data_column">
                    <h3>
                        <?php esc_html_e( 'Billing', 'woocommerce' ); ?>
                        <a href="#" class="edit_address"><?php esc_html_e( 'Edit', 'woocommerce' ); ?></a>
                        <span>
                            <a href="#" class="load_customer_billing" style="display:none;"><?php esc_html_e( 'Load billing address', 'woocommerce' ); ?></a>
                        </span>
                    </h3>
                    <div class="address">
                        <?php

                        // Display values.
                        if ( $order->get_formatted_billing_address() ) {
                            echo '<p>' . wp_kses( $order->get_formatted_billing_address(), array( 'br' => array() ) ) . '</p>';
                        } else {
                            echo '<p class="none_set"><strong>' . __( 'Address:', 'woocommerce' ) . '</strong> ' . __( 'No billing address set.', 'woocommerce' ) . '</p>';
                        }

                        foreach ( self::$billing_fields as $key => $field ) {
                            if ( isset( $field['show'] ) && false === $field['show'] ) {
                                continue;
                            }

                            $field_name = 'billing_' . $key;

                            if ( isset( $field['value'] ) ) {
                                $field_value = $field['value'];
                            } elseif ( is_callable( array( $order, 'get_' . $field_name ) ) ) {
                                $field_value = $order->{"get_$field_name"}( 'edit' );
                            } else {
                                $field_value = $order->get_meta( '_' . $field_name );
                            }

                            if ( 'billing_phone' === $field_name ) {
                                $field_value = wc_make_phone_clickable( $field_value );
                            } else {
                                $field_value = make_clickable( esc_html( $field_value ) );
                            }

                            if ( $field_value ) {
                                echo '<p><strong>' . esc_html( $field['label'] ) . ':</strong> ' . wp_kses_post( $field_value ) . '</p>';
                            }
                        }
                        ?>
</div>

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-06 21:12:08

在Woocommerce中,唯一在格式化地址中将状态显示为代码的国家是美国。

若要在格式化的账单或发货地址中显示美国的州名,请使用以下代码:

代码语言:javascript
复制
add_filter( 'woocommerce_localisation_address_formats', 'change_localisation_usa_state_format', 20, 2 );
function change_localisation_usa_state_format( $address_formats ){
    $address_formats['US'] = "{name}\n{company}\n{address_1}\n{address_2}\n{city}, {state} {postcode}\n{country}";

    return $address_formats;
}

代码在您的活动子主题(或活动主题)的function.php文件中。测试和工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52208702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档