首页 > 解决方案 > 如何从字段中覆盖浏览器数据并在 woocommerce 结帐页面中设置默认值?

问题描述

我正在尝试在 woocommerce 结帐页面中设置默认变量值

$fields['address_1']['default'] = $cart_item['address'];

它仅在客户第一次下订单时运作良好,当其他订单在浏览器数据中预填充字段时,所以我使用了这个

add_filter('woocommerce_checkout_get_value','__return_empty_string', 0, 0);

此过滤器返回空字段,但默认值也返回空。

标签: phpwordpresswoocommercecartcheckout

解决方案


您可以尝试改用:

add_filter( 'woocommerce_checkout_get_value', 'clear_shipping_fields_values', 5, 2 );
function clear_shipping_fields_values( $value, $input ) {
    $items = WC()->cart->get_cart();
    $item  = reset( $items );

    if( is_checkout() && isset($item['address']) && in_array( $input, ['billing_address_1', 'shipping_address_1']) ) {
        $value = $item['address'];
    }
    return $value;
}

代码在您的活动子主题(或活动主题)的functions.php 文件中。它应该工作。


推荐阅读