Esempio n. 1
0
/**
 * 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>';
     }
 }