/**
  * Filter the "Orders" list to show only orders associated with a specific subscription.
  *
  * @param string $where
  * @param string $request
  * @return string
  * @since 2.0
  */
 public static function filter_orders($where)
 {
     global $typenow, $wpdb;
     if (is_admin() && 'shop_order' == $typenow) {
         $related_orders = array();
         if (isset($_GET['_subscription_related_orders']) && $_GET['_subscription_related_orders'] > 0) {
             $subscription_id = absint($_GET['_subscription_related_orders']);
             $subscription = wcs_get_subscription($subscription_id);
             if (!wcs_is_subscription($subscription)) {
                 // translators: placeholder is a number
                 wcs_add_admin_notice(sprintf(__('We can\'t find a subscription with ID #%d. Perhaps it was deleted?', 'woocommerce-subscriptions'), $subscription_id), 'error');
                 $where .= " AND {$wpdb->posts}.ID = 0";
             } else {
                 self::$found_related_orders = true;
                 $where .= sprintf(" AND {$wpdb->posts}.ID IN (%s)", implode(',', array_map('absint', array_unique($subscription->get_related_orders('ids')))));
             }
         }
     }
     return $where;
 }
     * The 'select_subscription' flag is picked up by JavaScript to set the value of the product type to "Subscription".
     * 
     * @since 1.0
     */
    public static function add_subscription_url($show_pointers = true)
    {
        $add_subscription_url = admin_url('post-new.php?post_type=product&select_subscription=true');
        if ($show_pointers == true) {
            $add_subscription_url = add_query_arg('subscription_pointers', 'true', $add_subscription_url);
        }
        return $add_subscription_url;
    }
    /**
     * Searches through the list of active plugins to find WooCommerce. Just in case
     * WooCommerce resides in a folder other than /woocommerce/
     * 
     * @since 1.0
     */
    public static function get_woocommerce_plugin_dir_file()
    {
        foreach (get_option('active_plugins', array()) as $plugin) {
            if (substr($plugin, strlen('/woocommerce.php') * -1) === '/woocommerce.php') {
                $woocommerce_plugin_file = $plugin;
                break;
            }
        }
        return $woocommerce_plugin_file;
    }
}
WC_Subscriptions_Admin::init();
 /**
  * Include Docs & Settings links on the Plugins administration screen
  *
  * @param mixed $links
  * @since 1.4
  */
 public static function action_links($links)
 {
     $plugin_links = array('<a href="' . WC_Subscriptions_Admin::settings_tab_url() . '">' . __('Settings', 'woocommerce-subscriptions') . '</a>', '<a href="http://docs.woothemes.com/document/subscriptions/">' . __('Docs', 'woocommerce-subscriptions') . '</a>', '<a href="http://support.woothemes.com">' . __('Support', 'woocommerce-subscriptions') . '</a>');
     return array_merge($plugin_links, $links);
 }
    /**
     * The text to display before any sign-ups. 
     *
     * @since 1.0
     */
    public function no_items()
    {
        if (isset($_GET['_customer_user']) || !empty($_GET['_customer_user'])) {
            $user = get_user_by('id', intval($_GET['_customer_user']));
        }
        if (isset($_REQUEST['_product_id']) || isset($_REQUEST['_product_id'])) {
            $product = get_product(intval($_GET['_product_id']));
        }
        if (isset($_GET['_customer_user']) || !empty($_GET['_customer_user'])) {
            ?>
		<?php 
            if (isset($_REQUEST['_product_id']) || isset($_REQUEST['_product_id'])) {
                ?>
<p><?php 
                printf(__('%s has not purchased %s%s%s (#%s).', WC_Subscriptions::$text_domain), $user->display_name, '<em>', $product->get_title(), '</em>', intval($_GET['_product_id']));
                ?>
</p>
		<?php 
            } else {
                ?>
<p><?php 
                printf(__('%s has not purchased any subscriptions.', WC_Subscriptions::$text_domain), $user->display_name);
                ?>
</p>
		<?php 
            }
            ?>
		<?php 
        } elseif (isset($_REQUEST['_product_id']) || isset($_REQUEST['_product_id'])) {
            ?>
<p><?php 
            printf(__('No one has purchased %s%s%s (#%s) yet.', WC_Subscriptions::$text_domain), '<em>', $product->get_title(), '</em>', intval($_GET['_product_id']));
            ?>
</p>
		<?php 
        } elseif (isset($_REQUEST['s'])) {
            ?>
<p><?php 
            printf(__('No subscriptions found to have a subscriber name, email, title or order ID matching "%s".', WC_Subscriptions::$text_domain), '<em>' . esc_attr($_REQUEST['s']) . '</em>');
            ?>
</p>
		<?php 
        } else {
            ?>
<p><?php 
            _e('Subscriptions will appear here for you to view and manage once purchased by a customer.', WC_Subscriptions::$text_domain);
            ?>
</p>
<p><?php 
            printf(__('%sLearn more about managing subscriptions%s', WC_Subscriptions::$text_domain), '<a href="http://docs.woothemes.com/document/store-manager-guide/#managingsubscriptions" target="_blank">', ' &raquo;</a>');
            ?>
</p>
<p><?php 
            printf(__('%sAdd a subscription product%s', WC_Subscriptions::$text_domain), '<a href="' . WC_Subscriptions_Admin::add_subscription_url() . '">', ' &raquo;</a>');
            ?>
</p>
		<?php 
        }
    }
 /**
  * Checks on each admin page load if Subscriptions plugin is activated.
  *
  * Apparently the official WP API is "lame" and it's far better to use an upgrade routine fired on admin_init: http://core.trac.wordpress.org/ticket/14170
  *
  * @since 1.1
  */
 public static function maybe_activate_woocommerce_subscriptions()
 {
     global $wpdb;
     $is_active = get_option(WC_Subscriptions_Admin::$option_prefix . '_is_active', false);
     if ($is_active == false) {
         // Add the "Subscriptions" product type
         if (!get_term_by('slug', sanitize_title(self::$name), 'product_type')) {
             wp_insert_term(self::$name, 'product_type');
         }
         // If no Subscription settings exist, its the first activation, so add defaults
         if (get_option(WC_Subscriptions_Admin::$option_prefix . '_cancelled_role', false) == false) {
             WC_Subscriptions_Admin::add_default_settings();
         }
         add_option(WC_Subscriptions_Admin::$option_prefix . '_is_active', true);
         set_transient(self::$activation_transient, true, 60 * 60);
         do_action('woocommerce_subscriptions_activated');
     }
 }
Ejemplo n.º 6
0
 /**
  * Set a translation safe screen ID for Subcsription
  *
  * @since 1.3.3
  */
 public static function set_admin_screen_id()
 {
     self::$admin_screen_id = apply_filters('woocommerce_subscriptions_screen_id', 'woocommerce_page_subscriptions');
 }
 /**
  * Include Docs & Settings links on the Plugins administration screen
  *
  * @access public
  * @param  mixed $links
  * @since  1.0.0
  */
 public static function action_links($links)
 {
     $plugin_links = array('<a href="' . WC_Subscriptions_Admin::settings_tab_url() . '">' . __('Settings', 'woocommerce-skip-one') . '</a>', '<a href="#">' . _x('Docs', 'short for documents', 'woocommerce-skip-one') . '</a>', '<a href="#">' . __('Support', 'woocommerce-skip-one') . '</a>');
     return array_merge($plugin_links, $links);
 }
 /**
  * Returns the columns for the Manage Subscriptions table, specifically used for adding the
  * show/hide column screen options.
  *
  * @since 1.3.1
  */
 public static function get_subscriptions_list_table()
 {
     if (!isset(self::$subscriptions_list_table)) {
         if (!class_exists('WC_Subscriptions_List_Table')) {
             require_once 'class-wc-subscriptions-list-table.php';
         }
         self::$subscriptions_list_table = new WC_Subscriptions_List_Table();
     }
     return self::$subscriptions_list_table;
 }
 /**
  * The text to display before any sign-ups. 
  *
  * @since 1.0
  */
 public function no_items()
 {
     echo '<p>';
     _e('Subscriptions will appear here for you to view and manage once purchased by a customer.', WC_Subscriptions::$text_domain);
     echo '</p>';
     echo '<p>';
     printf(__('%sMore about managing subscriptions%s', WC_Subscriptions::$text_domain), '<a href="http://wcdocs.woothemes.com/user-guide/extensions/subscriptions/store-manager-guide/#section-3" target="_blank">', ' &raquo;</a>');
     echo '</p>';
     echo '<p>';
     printf(__('%sAdd a subscription product%s', WC_Subscriptions::$text_domain), '<a href="' . WC_Subscriptions_Admin::add_subscription_url() . '">', ' &raquo;</a>');
     echo '</p>';
 }
    /**
     * The text to display before any sign-ups. 
     *
     * @since 1.0
     */
    public function no_items()
    {
        if (isset($_GET['_customer_user']) && !empty($_GET['_customer_user'])) {
            $user = get_user_by('id', intval($_GET['_customer_user']));
        }
        if (isset($_REQUEST['_product_id']) && !empty($_GET['_product_id'])) {
            $product = get_product(intval($_GET['_product_id']));
        }
        if (isset($_GET['_customer_user']) && !empty($_GET['_customer_user'])) {
            if (isset($_REQUEST['_product_id'])) {
                if (isset($_GET['status']) && 'all' !== $_GET['status']) {
                    ?>
<p><?php 
                    printf(__('%s has no subscription to %s%s%s (#%s) with the status "%s".', WC_Subscriptions::$text_domain), $user->display_name, '<em>', $product->get_title(), '</em>', intval($_GET['_product_id']), $_GET['status']);
                    ?>
</p>
				<?php 
                } else {
                    ?>
<p><?php 
                    printf(__('%s has not purchased %s%s%s (#%s).', WC_Subscriptions::$text_domain), $user->display_name, '<em>', $product->get_title(), '</em>', intval($_GET['_product_id']));
                    ?>
</p>
				<?php 
                }
                ?>
		<?php 
            } else {
                ?>
<p><?php 
                printf(__('%s has not purchased any subscriptions.', WC_Subscriptions::$text_domain), $user->display_name);
                ?>
</p>
		<?php 
            }
            ?>
	<?php 
        } elseif (isset($_REQUEST['_product_id']) && !empty($_GET['_product_id'])) {
            ?>
		<?php 
            if (isset($_GET['status']) && 'all' !== $_GET['status']) {
                ?>
<p><?php 
                printf(__('There are no subscriptions to %s%s%s (#%s) with the status "%s".', WC_Subscriptions::$text_domain), '<em>', $product->get_title(), '</em>', intval($_GET['_product_id']), $_GET['status']);
                ?>
</p>
		<?php 
            } else {
                ?>
<p><?php 
                printf(__('No one has purchased %s%s%s (#%s) yet.', WC_Subscriptions::$text_domain), '<em>', $product->get_title(), '</em>', intval($_GET['_product_id']));
                ?>
</p>
		<?php 
            }
            ?>
	<?php 
        } else {
            ?>
<p><?php 
            _e('Subscriptions will appear here for you to view and manage once purchased by a customer.', WC_Subscriptions::$text_domain);
            ?>
</p>
<p><?php 
            printf(__('%sLearn more about managing subscriptions%s', WC_Subscriptions::$text_domain), '<a href="http://docs.woothemes.com/document/store-manager-guide/#section-3" target="_blank">', ' &raquo;</a>');
            ?>
</p>
<p><?php 
            printf(__('%sAdd a subscription product%s', WC_Subscriptions::$text_domain), '<a href="' . WC_Subscriptions_Admin::add_subscription_url() . '">', ' &raquo;</a>');
            ?>
</p>
		<?php 
        }
    }
 public static function maybe_activate_woocommerce_subscriptions()
 {
     global $wpdb;
     $is_active = get_option(WC_Subscriptions_Admin::$option_prefix . '_is_active', false);
     $active_version = get_option(WC_Subscriptions_Admin::$option_prefix . '_active_version', '0');
     if ($is_active == false || version_compare($active_version, self::$version, '<')) {
         // Update meta keys for 1.1 to 1.1.1 multisite changes
         if (version_compare($active_version, '1.1.1', '<')) {
             $updated_count = $wpdb->update($wpdb->usermeta, array('meta_key' => $wpdb->get_blog_prefix() . WC_Subscriptions_Manager::$users_meta_key), array('meta_key' => WC_Subscriptions_Manager::$users_meta_key));
         }
         // Fix any products that were incorrectly added as a subscription for a user in 1.1.2
         if (version_compare($active_version, '1.1.3', '<')) {
             foreach (get_users() as $user) {
                 $users_subscriptions = WC_Subscriptions_Manager::get_users_subscriptions($user->ID);
                 foreach ($users_subscriptions as $subscription_key => $subscription_details) {
                     if (!isset($subscription_details['order_id'])) {
                         WC_Subscriptions_Manager::remove_users_subscription($user->ID, $subscription_key);
                     }
                 }
             }
         }
         // Add the "Subscriptions" product type if it doesn't exist
         if (!get_term_by('slug', sanitize_title(self::$name), 'product_type')) {
             wp_insert_term(self::$name, 'product_type');
         }
         // If no Subscription settings exist, add defaults
         if (get_option(WC_Subscriptions_Admin::$option_prefix . '_cancelled_role', false) == false) {
             WC_Subscriptions_Admin::add_default_settings();
         }
         add_option(WC_Subscriptions_Admin::$option_prefix . '_is_active', true);
         update_option(WC_Subscriptions_Admin::$option_prefix . '_active_version', self::$version);
         set_transient(self::$activation_transient, true, 60 * 60);
         do_action('woocommerce_subscriptions_activated');
     }
 }
    /**
     * The text to display before any sign-ups. 
     *
     * @since 1.0
     */
    public function no_items()
    {
        if (isset($_REQUEST['s'])) {
            ?>
<p><?php 
            printf(__('No subscriptions found to have a subscriber name, email, title or order ID matching "%s".', WC_Subscriptions::$text_domain), '<em>' . esc_attr($_REQUEST['s']) . '</em>');
            ?>
</p>
		<?php 
        } else {
            ?>
<p><?php 
            _e('Subscriptions will appear here for you to view and manage once purchased by a customer.', WC_Subscriptions::$text_domain);
            ?>
</p>
<p><?php 
            printf(__('%sMore about managing subscriptions%s', WC_Subscriptions::$text_domain), '<a href="http://wcdocs.woothemes.com/user-guide/extensions/subscriptions/store-manager-guide/#section-4" target="_blank">', ' &raquo;</a>');
            ?>
</p>
<p><?php 
            printf(__('%sAdd a subscription product%s', WC_Subscriptions::$text_domain), '<a href="' . WC_Subscriptions_Admin::add_subscription_url() . '">', ' &raquo;</a>');
            ?>
</p>
		<?php 
        }
    }