Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在WooCommerce预订和预约中添加2个每周附加预约_Php_Wordpress_Date_Woocommerce_Woocommerce Bookings - Fatal编程技术网

Php 在WooCommerce预订和预约中添加2个每周附加预约

Php 在WooCommerce预订和预约中添加2个每周附加预约,php,wordpress,date,woocommerce,woocommerce-bookings,Php,Wordpress,Date,Woocommerce,Woocommerce Bookings,我对WooCommerce预订和约会插件进行了定制,因此当客户预订特定日期时,该插件会在第一次约会一周后自动添加第二次约会。现在我需要剪掉代码,以便在客户进行第一次预约时,在一周内彼此注册三次预约 当客户在11月9日(星期一)预约时,此Sniped将在11月16日(星期一)注册后续预约 // Set the follow up data $new_appointment_data = array( 'start_date' => strtotime( '+1

我对WooCommerce预订和约会插件进行了定制,因此当客户预订特定日期时,该插件会在第一次约会一周后自动添加第二次约会。现在我需要剪掉代码,以便在客户进行第一次预约时,在一周内彼此注册三次预约

当客户在11月9日(星期一)预约时,此Sniped将在11月16日(星期一)注册后续预约

    // Set the follow up data
    $new_appointment_data = array(
        'start_date' => strtotime( '+1 week', $prev_appointment->get_start() ), // same time, 1 week on
        'end_date'   => strtotime( '+1 week', $prev_appointment->get_end() ),   // same time, 1 week on
        'staff_ids'  => $prev_appointment->get_staff_ids(),                     // same staff
        'parent_id'  => $appointment_id,                                        // set the parent
    );
现在,我不知道如何增加第三周。这将是11月23日星期一的一个预言


编辑

这是我用来另外预约的代码:

add_action('woocommerce_appoint_in-cart_to_paid'、'auto_create_followup_appoint');
添加动作('woocommerce\u appointment\u paid\u to\u paid'、'auto\u create\u Follow\u appointment');
添加动作(“woocommerce”约会“已确认”至“已付”、“自动创建”跟进“约会”);
功能自动创建后续约会($appointment\u id){
//从ID获取以前的约会
$prev_appointment=get_wc_appointment($appointment_id);
//不想要后续的后续跟进
如果($prev\u约会->获取家长id()标准时间(“+1周”,$prev\u约会->获取开始()),则//同一时间,1周后
'end_date'=>strottime('+1周',$prev_约会->get_end()),//同一时间,1周后
'staff_id'=>$prev_appointment->get_staff_id(),//相同的员工
'parent\u id'=>$appointment\u id,//设置父项
);
//上次约会是一整天吗?
如果($prev\u约会->is\u全天()){
$new_appointment_data['all_day']=true;
}
创建_wc_约会(
$prev\u appointment->get\u product\u id(),//为以前的约会产品创建约会
$new\u appointment\u data,//使用上面拉取的数据
$prev_约会->获取_状态(),//匹配以前的约会状态
false//不准确,请查找下一个可用插槽
);
}
}

但我需要在第一个一周后再创建一个。欢迎提供任何帮助。

要在两周内进行第二次额外预约,您可以尝试使用以下方法:

add_action('woocommerce_appoint_in-cart_to_paid'、'auto_create_followup_appoint');
添加动作('woocommerce\u appointment\u paid\u to\u paid'、'auto\u create\u Follow\u appointment');
添加动作(“woocommerce”约会“已确认”至“已付”、“自动创建”跟进“约会”);
功能自动创建后续约会($appointment\u id){
//从ID获取以前的约会
$prev_appointment=get_wc_appointment($appointment_id);
//不想要后续的后续跟进
如果($prev\u约会->获取家长id()标准时间($prev\u约会->获取开始().+1周)),//同一时间,1周开始
“结束日期”=>strotime($prev_约会->get_end().“+1周”),//同一时间,1周后
'staff_id'=>$prev_appointment->get_staff_id(),//相同的员工
'parent\u id'=>$appointment\u id,//设置父项
);
//上次约会是一整天吗?
如果($prev\u约会->is\u全天()){
$new_appointment_data_1[“全天”]=true;
}
创建_wc_约会(
$prev\u appointment->get\u product\u id(),//为以前的约会产品创建约会
$new\u appointment\u data\u 1,//使用上面拉取的数据
$prev_约会->获取_状态(),//匹配以前的约会状态
false//不准确,请查找下一个可用插槽
);
//2.第二次附加说明(+2周)-设置随访数据
$new\u约会\u数据\u 2=数组(
“开始日期”=>strotime($prev_约会->get_start().“+2周”),//同一时间,2周后
“结束日期”=>strotime($prev_约会->get_end().“+2周”),//同一时间,2周后
'staff_id'=>$prev_appointment->get_staff_id(),//相同的员工
'parent\u id'=>$appointment\u id,//设置父项
);
//上次约会是一整天吗?
如果($prev\u约会->is\u全天()){
$new_appointment_data_2[“全天”]=true;
}
创建_wc_约会(
$prev\u appointment->get\u product\u id(),//为以前的约会产品创建约会
$$new\u约会\u data\u 2,//使用上面拉取的数据
$prev_约会->获取_状态(),//匹配以前的约会状态
false//不准确,请查找下一个可用插槽
);
}
}

代码进入活动子主题(或活动主题)的functions.php文件。它应该可以工作。

你是在问如何用strotime在时间戳上加上两周吗?您是否尝试过strtotime(“+2周”,$start)?我需要它添加一周(如上所示)和两周您尝试进行两次约会?然后,无论您如何处理$new_appointment_数据,您可能都必须执行两次。您的代码示例太少了一点。@bytris非常感谢您对下面答案底部评论区的反馈。