/**
  * Main EDD_Software_Licensing Instance
  *
  * Insures that only one instance of EDD_Software_Licensing exists in memory at any one
  * time. Also prevents needing to define globals all over the place.
  *
  * @since 1.4
  * @static
  * @staticvar array $instance
  */
 public static function instance()
 {
     if (!isset(self::$instance) && !self::$instance instanceof EDD_Software_Licensing) {
         self::$instance = new EDD_Software_Licensing();
     }
     return self::$instance;
 }
Beispiel #2
0
 /**
  * After license activation, if is trial -- add to a list
  *
  * @used "edd_activate_license"
  */
 public static function activate_license($data)
 {
     $license = !empty($data['license']) ? urldecode($data['license']) : false;
     $license_id = \EDD_Software_Licensing::instance()->get_license_by_key($license);
     $payment_id = get_post_meta($license_id, '_edd_sl_payment_id', true);
     $user_info = edd_get_payment_meta_user_info($payment_id);
     self::save_license_meta($data, $license_id, $user_info, $payment_id);
     $item_id = !empty($data['item_id']) ? absint($data['item_id']) : false;
     if (1 == 3 && class_exists('EDD_ConvertKit') && isset($data['details']['vertical']) && (self::$trial || ingSL::$trial == $item_id)) {
         self::$trial = true;
         $vertical = $data['details']['vertical'];
         if (!in_array($vertical, ingSL_verticals())) {
             return;
         }
         //$url        = isset( $data[ 'url' ] ) ? urldecode( $data[ 'url' ] ) : '';
         $convert_kit = new \EDD_ConvertKit();
         $convert_kit->subscribe_email($user_info, $vertical, true);
     }
 }
Beispiel #3
0
 /**
  * @param $license
  *
  * @return bool|null|string
  */
 protected function get_license_id($license)
 {
     return \EDD_Software_Licensing::instance()->get_license_by_key($license);
 }
Beispiel #4
0
 /**
  * Add the license upgrade from trial to the cart
  *
  * @param int $license_id
  *
  * @return string
  */
 protected static function prepare_upgrade($license_id)
 {
     $download_id = \EDD_Software_Licensing::instance()->get_download_id($license_id);
     if (is_numeric($download_id)) {
         $upgrades = edd_sl_get_upgrade_paths($download_id);
         if (is_array($upgrades) && !empty($upgrades)) {
             reset($upgrades);
             $upgrade_price_id = key($upgrades);
             $upgrade = edd_sl_get_upgrade_path(ids::$trial_id, $upgrade_price_id);
             $options = array('price_id' => $upgrade['price_id'], 'is_upgrade' => true, 'upgrade_id' => $upgrade_price_id, 'license_id' => $license_id, 'cost' => edd_sl_get_license_upgrade_cost($license_id, $upgrade_price_id));
             $added = edd_add_to_cart($upgrade['download_id'], $options);
             return $added;
         }
     }
 }
Beispiel #5
0
 /**
  * Generate free trial license code
  *
  * @param int $payment_id
  */
 public function make_license($payment_id)
 {
     $cart_item['item_number']['options']['price_id'] = ids::$trial_price_id;
     /** @var var array $keys */
     $keys = \EDD_Software_Licensing::instance()->generate_license(ids::$trial_id, $payment_id, 'default', $cart_item);
     if (is_array($keys) && isset($keys[0])) {
         $this->license = $keys[0];
         update_post_meta($this->license, '_ingsl_is_trial', 1);
         update_post_meta($this->license, '_ingsl_upsold', 0);
     }
 }
Beispiel #6
0
 /**
  * this is a filter so make sure to return what's being filtered. maybe later this can be an action
  * @param  boolean $send
  * @param  string  $license_id
  * @param  string  $notice_id
  * @return $send
  */
 public static function edd_sl_renewal_reminder($send = true, $license_id = '', $notice_id = '')
 {
     if (!$send) {
         // renewal not sent
         return $send;
     }
     $item_id = EDD_Software_Licensing::get_download_id($license_id);
     $payment_id = get_post_meta($license_id, '_edd_sl_payment_id', true);
     $user_id = edd_get_payment_user_id($payment_id);
     $uid = EDD_Segment_Identity::get_uid_from_user_id($user_id);
     $meta = edd_get_payment_meta($payment_id);
     // Adding an event for each item
     foreach ($meta['cart_details'] as $key => $item_details) {
         if ($item_id === $item_details['id']) {
             $item_details = array_merge($item_details, array('time' => time()));
             do_action('edd_segment_track', $uid, 'License Renewal Sent', $item_details);
         }
     }
     return $send;
 }