更新 WooCommerce 管理员发货订单字段

Updating WooCommerce Admin Shipping Order Fields

提问人:Ping 提问时间:3/9/2022 最后编辑:aynberPing 更新时间:1/9/2023 访问量:436

问:

在函数.php中,我尝试使用它,但它不起作用:

function rt_woocommerce_admin_shipping_fields( $fields ) {
    $fields['first_name']['value'] = $_GET['f'];
    $fields['last_name']['value'] = $_GET['l'];
    $fields['address_1']['value'] = $_GET['a'];
    $fields['address_2']['value'] = $_GET['b'];
    // etc
    // etc

    return $fields;
}

add_filter( 'woocommerce_admin_shipping_fields', 'rt_woocommerce_admin_shipping_fields' );

woocommerce_admin_billing_fields() 有效,但 shipping 功能无效。 有什么建议吗?我需要在页面加载时使用 $_GET 变量更新字段。这非常适合计费字段。

php wordpress woocommerce 钩子-woocommerce

评论


答:

1赞 mujuonly 3/9/2022 #1

该数组在发货字段中具有每个项目的索引。默认情况下没有索引。请参阅下面的过滤器。labelshowvaluewoocommerce_admin_shipping_fields

self::$shipping_fields = apply_filters(
            'woocommerce_admin_shipping_fields',
            array(
                'first_name' => array(
                    'label' => __( 'First name', 'woocommerce' ),
                    'show'  => false,
                ),
                'last_name'  => array(
                    'label' => __( 'Last name', 'woocommerce' ),
                    'show'  => false,
                ),
                'company'    => array(
                    'label' => __( 'Company', 'woocommerce' ),
                    'show'  => false,
                ),
                'address_1'  => array(
                    'label' => __( 'Address line 1', 'woocommerce' ),
                    'show'  => false,
                ),
                'address_2'  => array(
                    'label' => __( 'Address line 2', 'woocommerce' ),
                    'show'  => false,
                ),
                'city'       => array(
                    'label' => __( 'City', 'woocommerce' ),
                    'show'  => false,
                ),
                'postcode'   => array(
                    'label' => __( 'Postcode / ZIP', 'woocommerce' ),
                    'show'  => false,
                ),
                'country'    => array(
                    'label'   => __( 'Country / Region', 'woocommerce' ),
                    'show'    => false,
                    'type'    => 'select',
                    'class'   => 'js_field-country select short',
                    'options' => array( '' => __( 'Select a country / region…', 'woocommerce' ) ) + WC()->countries->get_shipping_countries(),
                ),
                'state'      => array(
                    'label' => __( 'State / County', 'woocommerce' ),
                    'class' => 'js_field-state select short',
                    'show'  => false,
                ),
                'phone'      => array(
                    'label' => __( 'Phone', 'woocommerce' ),
                ),
            )
        );

评论

0赞 Ping 3/10/2022
这是错误的答案。此代码已在 woocommerce/includes/admin/meta-boxes/meta-box-data 文件中...我需要从函数 .php 中更新实际字段值。我使用上面的代码轻松完成计费字段,但运输字段不会更新,这很奇怪。