WC_Checkout 挂钩中订单行项目和订单元之间的差异

Ras*_*i M 5 php wordpress checkout woocommerce hook-woocommerce

我正在创建一个插件,在其中使用woocommerce_checkout_update_order_meta钩子添加订单项元。

我安装了一个名为WooCommerce TM Extra Product Options 的插件。
该插件使用woocommerce_checkout_create_order_line_item钩子来添加订单项元。

激活插件后,我会在订单接收页面上显示插件的元字段,但我的元信息没有显示。如果插件被停用或当我评论woocommerce_checkout_create_order_line_item操作挂钩时,我的元数据就会显示。

Loi*_*tec 10

它们实际上并不是为了同样的事情:

\n
    \n
  • 例如,该挂钩woocommerce_checkout_update_order_meta允许添加/更新数据库表中的订单元数据wp_postmeta
  • \n
  • woocommerce_checkout_create_order_line_item例如,该挂钩允许在订单中添加/更新行项目类型,因此在数据库表wp_woocommerce_order_items(对于line_item项目类型(产品名称))和wp_woocommerce_order_itemmeta (对于line_item项目类型详细信息,如数量、行项目总计和产品变体的属性,\nattributes\ xe2\x80\xa6)
  • \n
\n

对于优先级(实际上没有优先级,因为它们不是为类似的事情而设计的):

\n\n
\n

要添加订单项元,您最好在WooCommerce TM Extra Product Optionswoocommerce_checkout_create_order_line_item插件之前优先使用操作挂钩。

\n
\n

例子

\n
add_action( \'woocommerce_checkout_create_order_line_item\', \'custom_checkout_create_order_line_item\', 20, 4 );  \nfunction custom_checkout_create_order_line_item( $item ) {  \n   $item->add_meta_data( \'meta_key\', \'meta_value\' );  \n}\n
Run Code Online (Sandbox Code Playgroud)\n

相关:WooCommerce:为订单中的每个项目添加不同的订单项目元

\n