/**
  * Change the status of a subscription and show a notice to the
  * user to say when the next payment will now be made on.
  *
  * @since  1.0.0
  * @access public
  * @static
  * @param  $subscription
  * @param  $order_id
  * @param  $product_id
  * @uses   WC_Subscriptions::add_notice
  */
 public static function change_users_subscription($subscription, $order_id, $product_id)
 {
     $subscription = !is_object($subscription) ? wcs_get_subscription($subscription) : $subscription;
     $current_next_subscription_payment = WC_Subscriptions_Order::get_next_payment_date($order_id, $product_id, $from_date = '');
     // Get the date of the current next subscription.
     $next_subscription_payment = WC_Subscriptions_Order::calculate_next_payment_date($order_id, $product_id, $type = 'mysql', $current_next_subscription_payment);
     WCSO_Subscriptions_Order::update_next_payment($order_id, $next_subscription_payment);
     // Update the next payment on the subscriptions order.
     $subscription->add_order_note(__('Subscription was skipped by the subscriber from their subscription page.', 'woocommerce-skip-one'));
     // translators: placeholder is next subscription payment
     WC_Subscriptions::add_notice(sprintf(__('You next payment subscription will now be on the %s.', 'woocommerce-skip-one'), $next_subscription_payment), 'success');
 }
コード例 #2
0
 /**
  * Clears the payment schedule for a subscription and sets a net date 
  * 
  * @param $subscription_key string A subscription key of the form created by @see self::get_subscription_key()
  * @param $user_id int (optional) The ID of the user who owns the subscriptions. Although this parameter is optional, if you have the User ID you should pass it to improve performance.
  * @param $type string (optional) The format for the Either 'mysql' or 'timestamp'.
  * @return mixed If there is no future payment set, returns 0, otherwise it will return a date of the next payment of the type specified with $type
  * @since 1.2
  */
 public static function calculate_next_payment_date($subscription_key, $user_id = '', $type = 'mysql', $from_date = '')
 {
     $subscription = self::get_subscription($subscription_key, $user_id);
     $next_payment = WC_Subscriptions_Order::calculate_next_payment_date($subscription['order_id'], $subscription['product_id'], $type, $from_date);
     return $next_payment;
 }