payment_completed 项 meta_data 的更改
Changes in item meta_data on payment_completed
我想在完成付款后更改add/change一件meta_data订单商品
有点像添加一个带有随机数的自定义字段。
我该怎么做?
我没找到方法
public function process_payment( $order_id ) {
global $woocommerce;
$order = new WC_Order( $order_id );
// Mark as on-hold (we're awaiting the cheque)
if ( 'yes' == $this->debug ) {
$this->log->add( 'Compra', "IPN Response Loggin test" );
}
$order->get_items();
if ( sizeof( $order->get_items() ) > 0 ) {
foreach ( $order->get_items() as $item ) {
if ( ! $item['qty'] ) {
continue;
}
// Any information about function to edit meta data in item ?
}
}
$order->payment_complete();
// Reduce stock levels
$order->reduce_order_stock();
// Remove cart
$woocommerce->cart->empty_cart();
// Return thankyou redirect
return array(
'result' => 'success',
'redirect' => $this->get_return_url( $order )
);
}
为此目的使用 wc_update_order_item_meta
。
试试这个
if ( sizeof( $order->get_items() ) > 0 ) {
foreach ( $order->get_items() as $id => $item ) {
if ( ! $item['qty'] ) {
continue;
}
// Any information about function to edit meta data in item ?
wc_update_order_item_meta( $id, 'your meta key', 'new value' );
}
}
如果您查看订单摘要中的 payment_complete()
方法 class,您将看到 woocommerce_payment_complete
操作挂钩。如果你想在支付完成后 运行 做些什么,那么你可以将你的函数附加到这个钩子上。在没有真正理解你在做什么的情况下,下面将简单地为订单中的每个项目添加一个随机数(不一定是唯一的)。
add_action( 'woocommerce_payment_complete', 'so_27852832_item_data' );
function so_27852832_item_data( $order_id ){
$order = new WC_Order( $order_id );
if ( sizeof( $order->get_items() ) > 0 ) {
foreach ( $order->get_items() as $id => $item ) {
wc_update_order_item_meta( $id, '_random_number', rand() );
}
}
}
我想在完成付款后更改add/change一件meta_data订单商品
有点像添加一个带有随机数的自定义字段。
我该怎么做?
我没找到方法
public function process_payment( $order_id ) {
global $woocommerce;
$order = new WC_Order( $order_id );
// Mark as on-hold (we're awaiting the cheque)
if ( 'yes' == $this->debug ) {
$this->log->add( 'Compra', "IPN Response Loggin test" );
}
$order->get_items();
if ( sizeof( $order->get_items() ) > 0 ) {
foreach ( $order->get_items() as $item ) {
if ( ! $item['qty'] ) {
continue;
}
// Any information about function to edit meta data in item ?
}
}
$order->payment_complete();
// Reduce stock levels
$order->reduce_order_stock();
// Remove cart
$woocommerce->cart->empty_cart();
// Return thankyou redirect
return array(
'result' => 'success',
'redirect' => $this->get_return_url( $order )
);
}
为此目的使用 wc_update_order_item_meta
。
试试这个
if ( sizeof( $order->get_items() ) > 0 ) {
foreach ( $order->get_items() as $id => $item ) {
if ( ! $item['qty'] ) {
continue;
}
// Any information about function to edit meta data in item ?
wc_update_order_item_meta( $id, 'your meta key', 'new value' );
}
}
如果您查看订单摘要中的 payment_complete()
方法 class,您将看到 woocommerce_payment_complete
操作挂钩。如果你想在支付完成后 运行 做些什么,那么你可以将你的函数附加到这个钩子上。在没有真正理解你在做什么的情况下,下面将简单地为订单中的每个项目添加一个随机数(不一定是唯一的)。
add_action( 'woocommerce_payment_complete', 'so_27852832_item_data' );
function so_27852832_item_data( $order_id ){
$order = new WC_Order( $order_id );
if ( sizeof( $order->get_items() ) > 0 ) {
foreach ( $order->get_items() as $id => $item ) {
wc_update_order_item_meta( $id, '_random_number', rand() );
}
}
}