我正在使用WooCommerce,WooCommerce Bookings和WooCommerce Deposits插件在WordPress网站上工作。该网站用于出租度假屋。
我要添加一些自定义代码,以便在预订开始前14天发送一封提醒您支付余额的电子邮件。
我一直在尝试从新下的订单中检索预订开始日期。
这与我已经接近(具有用于调试的额外输出):
add_action('woocommerce_thankyou', 'jjll_send_second_reminder_email');
function jjll_send_second_reminder_email( $order_id ) {
if ( ! $order_id )
return;
echo 'Checkpoint 1<br>';
echo '$order_id: ' . $order_id . '<br><br>';
$booking_data = new WC_Booking_Data_Store();
echo 'Checkpoint 2<br>';
echo '$booking_data:<br><pre>';
print_r($booking_data);
echo '</pre><br><br>';
$booking_ids = $booking_data->get_booking_ids_from_order_id( $order_id );
echo 'Checkpoint 3<br>';
echo '$booking_ids:<br><pre>';
print_r($booking_ids);
echo '</pre><br><br>';
echo 'Checkpoint 4<br>';
foreach ( $booking_ids as $booking_id ) {
$booking = get_wc_booking( $booking_id );
echo '$booking:<br><pre>';
print_r($booking);
echo '</pre><br><br>';
$start_date = $booking->get_start_date();
echo $start_date . '<br><br>';
}
}
在“谢谢”页面底部输出以下内容:
Checkpoint 1 $order_id: 1214 Checkpoint 2 $booking_data: WC_Booking_Data_Store Object ( [booking_meta_key_to_props:WC_Booking_Data_Store:private] => Array ( [_booking_all_day] => all_day [_booking_cost] => cost [_booking_customer_id] => customer_id [_booking_order_item_id] => order_item_id [_booking_parent_id] => parent_id [_booking_persons] => person_counts [_booking_product_id] => product_id [_booking_resource_id] => resource_id [_booking_start] => start [_booking_end] => end [_wc_bookings_gcalendar_event_id] => google_calendar_event_id [_local_timezone] => local_timezone ) [meta_type:protected] => post [object_id_field_for_meta:protected] => [internal_meta_keys:protected] => Array ( ) [must_exist_meta_keys:protected] => Array ( ) ) Checkpoint 3 $booking_ids: Array ( ) Checkpoint 4
所以我实际上还没有访问任何预订数据。
感谢您的帮助。