Php 电子商务中的优惠券日时间范围

Php 电子商务中的优惠券日时间范围,php,wordpress,woocommerce,date-range,coupon,Php,Wordpress,Woocommerce,Date Range,Coupon,我想让优惠券在商业中的使用持续数小时,但没有成功 根据答案,我的代码是: // Utility function that gives the discount daily period function get_discount_period_rate(){ // Set the correct time zone (http://php.net/manual/en/timezones.php) date_default_timezone_set('Europe/Paris'

我想让优惠券在商业中的使用持续数小时,但没有成功

根据答案,我的代码是:

// Utility function that gives the discount daily period
function get_discount_period_rate(){
    // Set the correct time zone  (http://php.net/manual/en/timezones.php)
    date_default_timezone_set('Europe/Paris');


    // Set the start time and the end time
    $start_time = mktime( 08, 00, 00, date("m")  , date("d"), date("Y") );
    $end_time   = mktime( 09, 00, 00, date("m")  , date("d"), date("Y") );
    $time_now   = strtotime("now");
}

    // Set the coupon Ids that will be discounted
  $wc_coupon = new WC_Coupon('integralia10'); // get intance of wc_coupon which code is "integralia10"
    if (!$wc_coupon || !$wc_coupon->is_valid()) {
        return;
    }

    $coupon_code = $wc_coupon->get_code();
    if (!$coupon_code) {
        return;
    }
另外,我想使用
wc\u print\u notices
功能在有人试图使用超出时间范围的优惠券代码时显示一条消息


任何建议?

使用以下代码,在特定时间范围内的所有优惠券都将有效,如果无效,将显示错误消息

请设置:

  • 正确的
  • 开始和结束时间
功能时间\范围(){
//设置正确的时区(http://php.net/manual/en/timezones.php)
日期默认时区设置(“欧洲/布鲁塞尔”);
//将开始时间和结束时间设置为有效
$start_time=mktime(11,00,00,date('m')、date('d')、date('y'));
$end_time=mktime(13,00,00,date('m')、date('d')、date('y'));
$time_now=strottime('now');
//返回真或假
返回$start\u time=$time\u now?true:false;
}
//有效
函数筛选器\u商业\u优惠券\u有效($is\u有效,$优惠券,$折扣){
//调用函数,返回true或false
返回时间_范围();
}
添加过滤器(“woocommerce优惠券有效”,“过滤器woocommerce优惠券有效”,10,3);
//错误
函数筛选器\u优惠券\u错误($err,$err\u代码,$优惠券){
//验证
if(intval($err_code)==WC_优惠券::E_WC_优惠券无效&&time_范围()==false){
$err=uuu('My error','woocommerce');
}
返回$err;
}
添加过滤器(“woocommerce优惠券错误”,“过滤器woocommerce优惠券错误”,10,3);


更新:以应用相同的,但仅适用于某些优惠券ID, 用这个代替

功能时间\u范围\u优惠券id($优惠券id){
//仅对于特定优惠券ID,可以添加多个优惠券ID,并用逗号分隔
$specific\u优惠券\u id=数组(107108);
//数组中的优惠券ID,请检查
if(在数组中($优惠券\u id,$specific\u优惠券\u id)){
//设置正确的时区(http://php.net/manual/en/timezones.php)
日期默认时区设置(“欧洲/布鲁塞尔”);
//将开始时间和结束时间设置为有效
$start_time=mktime(12,00,00,date('m')、date('d')、date('y'));
$end_time=mktime(15,00,00,date('m')、date('d')、date('y'));
$time_now=strottime('now');
//返回真或假
返回$start\u time=$time\u now?true:false;
}
//违约
返回true;
}
//有效
功能过滤器\u商业\u优惠券\u有效($is\u有效,$优惠券,$折扣){
//获取优惠券ID
$coupon_id=$coupon->get_id();
//调用函数,返回true或false
返回时间\范围\优惠券\ id($优惠券\ id);
}
添加过滤器(“woocommerce优惠券有效”,“过滤器woocommerce优惠券有效”,10,3);
//错误
函数过滤器\u商业\u优惠券\u错误($err,$err\u代码,$优惠券){
//获取优惠券ID
$coupon_id=$coupon->get_id();
//验证
如果(intval($err\U code)==WC\U优惠券::E\U WC\U优惠券无效\U过滤和时间\U范围\U优惠券\U id($优惠券\U id)==false){
$err=uuu('My error','woocommerce');
}
返回$err;
}
添加过滤器(“woocommerce优惠券错误”,“过滤器woocommerce优惠券错误”,10,3);