我正在使用WooCommerce預訂插件,我目前正在尋找在預訂摘要(產品選項)中顯示其他信息。WooCommerce預訂:在創建訂單前檢索預訂數據
要做到這一點我用下面的掛鉤:woocommerce_admin_booking_data_after_booking_details
如果我的預訂鏈接到一個訂單,我使用功能wc_get_order_item_meta
找回我的數據我希望能夠找回我的數據當預訂還沒有訂單時(簡單地加入購物籃)。
當瀏覽數據庫時,我看到信息存儲在表woocommerce_sessions
中。
在我使用的鉤子中,我只能訪問預留的ID。
是否有可能從這個檢索相應的會話?
感謝
UPDATE
add_filter('woocommerce_admin_booking_data_after_booking_details', function ($booking_id) {
global $wpdb;
$booking = get_wc_booking($booking_id);
$order = $booking->get_order();
if ($order) {
foreach ($order->get_items() as $item) {
$item_meta = wc_get_order_item_meta($item->get_id(), '', FALSE);
/* Your code */
}
} else {
$table = $wpdb->prefix . 'woocommerce_sessions';
$condition = '%booking_id____' . $booking_id . '%';
$sql = "SELECT session_value FROM $table WHERE session_value LIKE '$condition'";
$query = maybe_unserialize($wpdb->get_var($sql));
$cart_items = maybe_unserialize($query['cart']);
foreach ($cart_items as $item) {
/* Your code */
}
}
}, 10, 1);
謝謝您的幫助。但是,我想要在管理控制檯中顯示數據,我無法訪問購物車,但只能訪問預訂ID。 – Antoine
@Antoine這將變得更加複雜,因爲唯一的方法是從會話中獲取數據......因此,您必須首先獲取所有購物車會話數據,然後在多個foreach循環中處理這些數據以獲取「reservetion_id」然後將每個'reservetion_id'關聯到你想要的正確數據......所有這些都在自定義函數中......你可以使用$ wpdb來獲取SQL查詢中的數據。但是這將會變得非常複雜,您將無法始終獲得定義的用戶。 – LoicTheAztec
好吧,我明白了。我必須通過自定義查詢來檢索所有購物車會話或有本地功能? – Antoine