/** * Register listeners for renewal reminders. * * @since 1.0 * * @param Manager $manager */ function register_listeners(Manager $manager) { $shared = \ITELIC\get_shared_tags(); foreach ($shared as $listener) { $manager->listen($listener); } $manager->listen(new Listener('key', function (Key $key) { return $key->get_key(); })); $manager->listen(new Listener('key_expiry_date', function (Key $key) { return $key->get_expires()->format(get_option('date_format') . ' ' . get_option('time_format')); })); $manager->listen(new Listener('key_days_from_expiry', function (Key $key) { $diff = $key->get_expires()->diff(new \DateTime(), true); return $diff->days; })); $manager->listen(new Listener('product_name', function (Key $key) { return $key->get_product()->post_title; })); $manager->listen(new Listener('transaction_order_number', function (Key $key) { return it_exchange_get_transaction_order_number($key->get_transaction()); })); $manager->listen(new Listener('renewal_link', function (Key $key) { if ($key->is_renewable()) { return itelic_generate_auto_renewal_url($key); } else { return get_permalink($key->get_product()->ID); } })); $manager->listen(new Listener('discount_amount', function (Discount $discount) { return $discount->get_amount(true); })); }
/** * Outputs a renew link. * * @since 1.0 * * @param array $options * * @return string */ public function renew_link($options = array()) { $defaults = array('format' => 'html', 'label' => __("Renew this license key", ITELIC\Plugin::SLUG)); $options = ITUtility::merge_defaults($options, $defaults); if (!$this->license) { return ''; } if (!$this->license->is_renewable()) { return ''; } $link = itelic_generate_auto_renewal_url($this->license); switch ($options['format']) { case 'link': return $link; case 'label': return $options['label']; case 'html': default: return '<a href="' . $link . '">' . $options['label'] . '</a>'; } }