我需要在插件中付款前显示购物车中的订单详情。
我开发了一个连接 woocommerce 和支付 API 的插件,我需要在其中发送一系列产品详细信息,例如产品 ID、名称、描述、数量和个人金额。
我的问题是我找不到合适的钩子(Hook)来正确获取所有数据。
我怎样才能得到这些数据?
谢谢
更新
这里是基于所有需要它的人的答案的更新:
add_action('woocommerce_checkout_process', 'woocommerce_get_data', 10);
function woocommerce_get_data(){
$cart = array();
$items = WC()->cart->get_cart();
foreach($items as $i=>$fetch){
$item = $fetch['data']->post;
$cart[]=array(
'code' => $fetch['product_id'],
'name' => $item->post_title,
'description' => $item->post_content,
'quantity' => $fetch['quantity'],
'amount' => get_post_meta($fetch['product_id'], '_price', true)
);
}
$user = wp_get_current_user();
$data = array(
'total' => WC()->cart->total,
'cart' => $cart,
'user' => array(
'id' => $user->ID,
'name' => join(' ',array_filter(array($user->user_firstname, $user->user_lastname))),
'mail' => $user->user_email,
)
);
$_SESSION['woo_data']=json_encode($data);
}
感谢@loictheaztec 和@raunak-gupta
最佳答案
I think you are looking for
woocommerce_checkout_process
hook.WC_Checkout::process_checkout()
– Process the checkout after the confirm order button is pressed.
代码如下:
add_action('woocommerce_checkout_process', 'wh_getCartItemBeforePayment', 10);
function wh_getCartItemBeforePayment()
{
$items = WC()->cart->get_cart();
foreach ($items as $item => $values)
{
$_product = $values['data']->post;
$product_title = $_product->post_title;
$qty = $values['quantity'];
$price = get_post_meta($values['product_id'], '_price', true);
}
}
代码位于您的事件子主题(或主题)的 function.php 文件中。或者也可以在任何插件 php 文件中。
希望这对您有所帮助!
关于php - WooCommerce 在插件付款前获取订单产品详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42784075/