/** * Retrieve the renewal label for a notice * * @since 3.0 * @return String */ function edd_sl_get_renewal_notice_period_label($notice_id = 0) { $notice = edd_sl_get_renewal_notice($notice_id); $periods = edd_sl_get_renewal_notice_periods(); $label = $periods[$notice['send_period']]; return apply_filters('edd_sl_get_renewal_notice_period_label', $label, $notice_id); }
_e('The subject line of the renewal notice email', 'edd_sl'); ?> </p> </td> </tr> <tr> <th scope="row" valign="top"> <label for="edd-notice-period"><?php _e('Email Period', 'edd_sl'); ?> </label> </th> <td> <select name="period" id="edd-notice-period"> <?php foreach (edd_sl_get_renewal_notice_periods() as $period => $label) { ?> <option value="<?php echo esc_attr($period); ?> "<?php selected($period, $notice['send_period']); ?> ><?php echo esc_html($label); ?> </option> <?php } ?> </select>
/** * Callback for daily edd events to * * @return bool */ function edd_drip_daily_scheduled_events_func() { //Make sure EDD - licensing is installed and these functions/hooks still exist if (!function_exists('edd_sl_get_renewal_notice_periods') || !function_exists('edd_sl_get_expiring_licenses') || !has_action('edd_sl_send_scheduled_reminder_for_license')) { error_log('edd-drip warning:EDD function is no longer available.'); return false; } //Fire an event for all edd renewal periods - will fire ONCE for each customer/license foreach (edd_sl_get_renewal_notice_periods() as $period => $label) { //This corrects a bug in EDD where the period = 'expired' //When the edd_sl_get_expiring_licenses is called it will not use the correct date range //to find expired licenses and suspect ALL expired licenses will be returned if ('expired' == $period) { $period = 'today'; } //Get the expiring licenses for this period $expiring_license_ids = edd_sl_get_expiring_licenses($period); //No expiring licenses for this period if (false === $expiring_license_ids) { continue; } //Expiring license keys found - fire drip events foreach ($expiring_license_ids as $license_id) { //make sure download is published - notice_id is not used in function so default to 0 if (!apply_filters('edd_sl_send_scheduled_reminder_for_license', true, $license_id, 0)) { continue; } //Was the renewal event already fired for this license + period? $sent_time = get_post_meta($license_id, sanitize_key('_edd_sl_drip_renewal_sent_' . $period), true); //error_log(var_export(sanitize_key( '_edd_sl_drip_renewal_sent_' . $period ),true)); if ($sent_time) { $expire_date = strtotime($period, $sent_time); if (time() < $expire_date) { // The renewal period isn't expired yet so don't send again continue; } delete_post_meta($license_id, sanitize_key('_edd_sl_drip_renewal_sent_' . $period)); } //fire drip event $this->fire_drip_expired_event($license_id, $period); } } }