当前位置: 首页 > 知识库问答 >
问题:

将签出订单备注字段移到WooCommerce 3中“创建帐户”上方

濮佑运
2023-03-14

我使用的是WooCommerce 3.2版。我已经尝试在我的主题函数中添加下面的代码。php移动订单注释签出字段,但它不起作用:

add_filter( 'woocommerce_checkout_fields', 'bbloomer_move_checkout_fields_woo_3');
  function bbloomer_move_checkout_fields_woo_3( $fields ) {
  $fields['order']['order_comments']['priority'] = 8;
  return $fields;
}

我想将订单备注文本区域字段移到“创建账户”复选框上方和结帐页面上“账单邮政编码”字段下方。

我怎样才能让它工作?

共有1个答案

史同化
2023-03-14

在下面的代码中:

  • 我删除“订单注释”
  • 我添加了一个类似的自定义账单字段(名为“账单\客户\备注”)
  • 我重新排列字段(*)
  • 一旦订单在结帐时提交,我会添加自定义账单字段“customer note”数据作为经典的订单备注

下面是代码:

// Checkout fields customizations
add_filter( 'woocommerce_checkout_fields' , 'customizing_checkout_fields', 10, 1 );
function customizing_checkout_fields( $fields ) {
    // Remove the Order Notes
    unset($fields['order']['order_comments']);

    // Define custom Order Notes field data array
    $customer_note  = array(
        'type' => 'textarea',
        'class' => array('form-row-wide', 'notes'),
        'label' => __('Order Notes', 'woocommerce'),
        'placeholder' => _x('Notes about your order, e.g. special notes for delivery.', 'placeholder', 'woocommerce')
    );

    // Set custom Order Notes field
    $fields['billing']['billing_customer_note'] = $customer_note;

    // Define billing fields new order
    $ordered_keys = array(
        'billing_first_name',
        'billing_last_name',
        'billing_company',
        'billing_country',
        'billing_address_1',
        'billing_address_2',
        'billing_city',
        'billing_state',
        'billing_postcode',
        'billing_phone',
        'billing_email',
        'billing_customer_note', // <= HERE
    );

    // Set billing fields new order
    $count = 0;
    foreach( $ordered_keys as $key ) {
        $count += 10;
        $fields['billing'][$key]['priority'] = $count;
    }

    return $fields;
}

// Set the custom field 'billing_customer_note' in the order object as a default order note (before it's saved)
add_action( 'woocommerce_checkout_create_order', 'customizing_checkout_create_order', 10, 2 );
function customizing_checkout_create_order( $order, $data ) {
    $order->set_customer_note( isset( $data['billing_customer_note'] ) ? $data['billing_customer_note'] : '' );
}

代码进入函数。活动子主题(或主题)或任何插件文件中的php文件。

测试和工作。

 类似资料:
  • 大家好,我通过搜索并找到解决方案,对我在woocommerce上的结帐进行了一些编辑。 到目前为止,我已经做到了,所以我跳过购物车/篮子,直接去结账,并重命名了订单笔记文件。 我正在挣扎的是如何将订单注释字段移动到订单评论上方。我知道我需要使用这个woocommerce_checkout_before_order_review但我不知道如何使用。任何帮助都会很棒吗?

  • 我正在用WooCommerce建立一个网络商店。我的地址设置如下:1。帐单地址2。复选框:创建帐户(未登录时)3。复选框:发送到其他地址 因此,当客户选中“创建帐户”框时,他们必须填写密码。我想使用账单地址信息作为账单和送货地址(默认情况下)。但是,当客户现在选中“创建帐户”框并未选中“运送到不同地址”时,表单会给出一个错误,说客户也需要填写运送地址字段。下面是我的一段结账代码(账单地址字段 我希

  • 在WooCommerce结账页面中,当选中或取消选中“运送到不同地址”复选框时,我已经设法显示或隐藏“订单备注”字段,使用“根据WooCommerce结账中的复选框显示隐藏订单备注字段”回答我的一个问题。 我希望“订单注释”字段只有在可见时才是必需的 当此“订单注释”字段可见(而不是隐藏)时,如何使其成为必需字段并为其启用验证? 欢迎任何帮助。

  • 为什么我不能从Woocommerce签出字段中检索数据,以便在订单处理时更新订阅数据? 我想根据客户结帐时的频率请求更新下一个续订日期。这是我的密码: 1) 设置签出字段: 2) 更新订单元数据。这将在客户订单上创建两个自定义字段,并更新订阅上的计费间隔: 3) 更新续约日期 对于最后一部分,我可以使用我选择的虚拟日期更新续约日期(例如:,但当我试图让它读取字段时,它会恢复为默认值。 这是我尝试过

  • 我使用Laravel 8框架的PHP和我试图集成贝宝到我的本地网络。然而,我被困在create_order_error,即使我严格遵循贝宝提供的一些样本片段,我仍然遇到这个亲 参考文献: https://developer.paypal.com/demo/checkout/#/pattern/server 错误:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

  • 我想在Woocommerce购物车优惠券区域下的Woocommerce购物车页面中添加注释字段。此字段应该类似于Woocommerce结帐页“订单注释”字段,客户可以在其中添加一些注释。 到目前为止,我有一个指示我所需位置的代码: 如何在此区域中添加备注字段,以便这些客户备注也显示在结帐页面的订单详细信息中? 谢谢