/** * Front end styles and scripts. * * @return void */ public static function frontend_scripts() { wp_register_style('wcsatt-css', WCS_ATT()->plugin_url() . '/assets/css/wcsatt-frontend.css', false, WCS_ATT::VERSION, 'all'); wp_enqueue_style('wcsatt-css'); if (is_cart()) { wp_register_script('wcsatt-cart', WCS_ATT()->plugin_url() . '/assets/js/wcsatt-cart.js', array('jquery', 'wc-country-select', 'wc-address-i18n'), WCS_ATT::VERSION, true); } wp_enqueue_script('wcsatt-cart'); $params = array('update_cart_option_nonce' => wp_create_nonce('wcsatt_update_cart_option'), 'wc_ajax_url' => WCS_ATT_Core_Compatibility::is_wc_version_gte_2_4() ? WC_AJAX::get_endpoint("%%endpoint%%") : WC()->ajax_url()); wp_localize_script('wcsatt-cart', 'wcsatt_cart_params', $params); }
public static function init() { // Allow subs to recognize a cart item of any product type as a subscription add_filter('woocommerce_is_subscription', __CLASS__ . '::is_converted_to_sub', 10, 3); // Add convert-to-sub configuration data to cart items that can be converted add_filter('woocommerce_add_cart_item', __CLASS__ . '::add_cart_item_convert_to_sub_data', 10, 2); // Load convert-to-sub cart item session data add_filter('woocommerce_get_cart_item_from_session', __CLASS__ . '::load_convert_to_sub_session_data', 5, 2); // Finalize covert-to-sub product-level/cart-level session data add_filter('woocommerce_cart_loaded_from_session', __CLASS__ . '::apply_convert_to_sub_session_data', 5); // Save the convert to sub radio button setting when clicking the 'update cart' button add_filter('woocommerce_update_cart_action_cart_updated', __CLASS__ . '::update_convert_to_sub_options', 10); // Save the convert to sub cart-level setting via ajax if (WCS_ATT_Core_Compatibility::is_wc_version_gte_2_4()) { add_action('wc_ajax_wcsatt_update_cart_option', __CLASS__ . '::update_convert_to_sub_cart_options'); } else { add_action('wp_ajax_wcsatt_update_cart_option', __CLASS__ . '::update_convert_to_sub_cart_options'); add_action('wp_ajax_nopriv_wcsatt_update_cart_option', __CLASS__ . '::update_convert_to_sub_cart_options'); } }
/** * Product writepanel for Subscriptions. * * @return void */ public static function product_write_panel() { global $post; $subscription_schemes = get_post_meta($post->ID, '_wcsatt_schemes', true); ?> <div id="wcsatt_data" class="panel woocommerce_options_panel wc-metaboxes-wrapper"> <div class="options_group"><?php // Subscription Status. woocommerce_wp_checkbox(array('id' => '_wcsatt_force_subscription', 'label' => __('Force subscription', WCS_ATT::TEXT_DOMAIN), 'desc_tip' => true, 'description' => __('Check this option to prevent one-time purchases of this product. In effect when at least one Subscription Option has been added below.', WCS_ATT::TEXT_DOMAIN))); // Default Status. woocommerce_wp_select(array('id' => '_wcsatt_default_status', 'wrapper_class' => 'wcsatt_default_status', 'label' => __('Default to', WCS_ATT::TEXT_DOMAIN), 'description' => '', 'options' => array('one-time' => __('One-time purchase', WCS_ATT::TEXT_DOMAIN), 'subscription' => __('Subscription', WCS_ATT::TEXT_DOMAIN)))); // Subscription Prompt. woocommerce_wp_textarea_input(array('id' => '_wcsatt_subscription_prompt', 'label' => __('Subscription prompt', WCS_ATT::TEXT_DOMAIN), 'description' => __('Custom html/text to display before the available Subscription Options. In effect when at least one Subscription Option has been added below.', WCS_ATT::TEXT_DOMAIN), 'desc_tip' => true)); ?> </div> <p class="form-field"> <label> <?php echo __('Subscription Options', WCS_ATT::TEXT_DOMAIN); echo WCS_ATT_Core_Compatibility::wc_help_tip(__('Add one or more subscription options for this product.', WCS_ATT::TEXT_DOMAIN)); ?> </label></p> <div class="subscription_schemes wc-metaboxes ui-sortable" data-count=""><?php if ($subscription_schemes) { $i = 0; foreach ($subscription_schemes as $subscription_scheme) { do_action('wcsatt_subscription_scheme', $i, $subscription_scheme, $post->ID); $i++; } } ?> </div> <p class="toolbar"> <button type="button" class="button button-primary add_subscription_scheme"><?php _e('Add Option', WCS_ATT::TEXT_DOMAIN); ?> </button> </p> </div><?php }