为什么我的值(来自自定义字段)被旧值(来自所述字段)覆盖?

时间:2019-06-12 07:04:30

标签: wordpress woocommerce hook-woocommerce

我正在尝试让用户通过“我的帐户/编辑地址”显示的2个自定义字段中的值显示在相同的自定义字段中,但在结帐时,现在即使被旧(输入)值覆盖,即使该字段(通过浏览器检查器查看)具有新值。如何停止呢?

我对woocommerce,插件制作和wordpress都是陌生的。现在,我还没有做太多的事情来做任何事情(以不同的顺序放置代码,更改优先级,更改名称...如您所见,我真的不知道我在做什么)。

这是我制作字段的方式:

add_filter( 'woocommerce_checkout_fields' , 'plugin_add_custom_billing_fields' );
function plugin_add_custom_billing_fields($fields) {
    $fields['billing']['billing_org_number'] = array(
        'label'     => __('Organisationsnummer', 'woocommerce'),
        'placeholder'   => __('T.ex. 1234-5678', 'woocommerce'),
        'required'  => true,
        'class'     => array('form-row-wide'),
        'clear'     => true,
    );

    $fields['billing']['billing_org_reference'] = array(
        'label'     => __('Kostnadsställe/referens', 'woocommerce'),
        'placeholder'   => __('T.ex. Per Olofsson', 'woocommerce'),
        'required'  => true,
        'class'     => array('form-row-wide'),
        'clear'     => true,
    );

    return $fields;
}

这是我保存字段的方式:

function reigel_woocommerce_checkout_update_user_meta( $customer_id, $posted ) {
    var_dump($customer_id, $posted);
    if (isset($posted['billing_org_number'])) {
        $dob = sanitize_text_field( $posted['billing_org_number'] );
        update_user_meta( $customer_id, 'billing_org_number', $dob);
    }

    if (isset($posted['billing_org_reference'])) {
        $dob = sanitize_text_field( $posted['billing_org_reference'] );
        update_user_meta( $customer_id, 'billing_org_reference', $dob);
    }
}
add_action( 'woocommerce_update_user_meta', 'reigel_woocommerce_checkout_update_user_meta', 10, 2 ); 

如您所见,我之前一直在搜索StackOverflow,并得到了Reigel的帮助!告诉我是否需要更多代码。

我想要的结果:在我的帐户/编辑地址中进行编辑后,我的值(来自数据库)将显示在Checkout中。

实际结果:旧值显示在Checkout中,新值显示在“我的帐户/编辑地址”中。

编辑:好像Klarna Checkout的插件搞乱了会话。

编辑2:是,是克拉纳。我将稍后再讨论此问题,因为该小组讨论并选择了删除该插件。

0 个答案:

没有答案