在客户备注字段中添加订单项目

wxclj1h5  于 2022-10-24  发布在  WordPress
关注(0)|答案(1)|浏览(270)

我试图添加新的WooCommerce订单的客户添加备注字段中订购的产品(每产品每行的数量)。我在函数.php中引入了以下代码,但它不起作用。

/* Add ordered products to the customer notes field on order creation. */
add_action( ‘woocommerce_new_order’, ‘products_in_customer_notes’, 10, 1 );

function products_in_customer_notes( $order_id ) {
    $order = wc_get_order( $order_id );

    // Verify it's a WC Order
    if ( is_a( $order, 'WC_Order' ) ) {
        $customer_note = $order->get_customer_note();

        foreach ( $order->get_items() as $item_id => $item ) {
            $product_name = $item->get_name();
            $quantity = $item->get_quantity();
            $customer_note .= "<br>";
            $customer_note .= $quantity . 'x ' . $product_name;
        }

        // Add the note
        $order->set_customer_note($customer_note);
        // $order->add_order_note($customer_note);

        // Save the data
        $order->save();
    }
}

当这不起作用时,我试图通过硬编码注解来简化我的代码,但这也不起作用。

/* Add ordered products to the customer notes field on order creation. */
add_action( ‘woocommerce_new_order’, ‘products_in_customer_notes’, 10, 1 );

function products_in_customer_notes( $order_id ) {
    $order = wc_get_order( $order_id );

    // Verify it's a WC Order
    if ( is_a( $order, 'WC_Order' ) ) {
        $customer_note = $order->get_customer_note();
        $customer_note .= '<br>';
        $customer_note .= 'Hardcoded Test';

        //  foreach ( $order->get_items() as $item_id => $item ) {
        //      $product_name = $item->get_name();
        //      $quantity = $item->get_quantity();
        //      $customer_note .= "<br>";
        //      $customer_note .= $quantity . 'x ' . $product_name;
        //  }

        // Add the note
        $order->set_customer_note($customer_note);
        // $order->add_order_note($customer_note);

        // Save the data
        $order->save();
    }
}

我遗漏了什么,阻碍了这一点的发挥?
所需的输出将如下所示:

Any customer notes if they were inserted at the time of order placement. 
1x product A
3x product B
8x product C
etc.
oug3syen

oug3syen1#

add_action( 'woocommerce_new_order', 'products_in_customer_notes', 10, 2 );

function products_in_customer_notes( $order_id, $order ) {

    // Verify it's a WC Order
    if ( is_a( $order, 'WC_Order' ) ) {
        $customer_note = $order->get_customer_note();

          foreach ( $order->get_items() as $item_id => $item ) {
              $product_name = $item->get_name();
              $quantity = $item->get_quantity();
              $customer_note .= "<br>";
              $customer_note .= $quantity . 'x ' . $product_name;
          }

        // Add the note
        $order->set_customer_note($customer_note);

        // Save the data
        $order->save();
    }
}

您缺少参数count(2),$order_id, $order

相关问题