*/ class Wc_Cdp_Admin { /** * The ID of this plugin. * * @since 1.0.0 * @access private * @var string $plugin_name The ID of this plugin. */ private $plugin_name; /** * The version of this plugin. * * @since 1.0.0 * @access private * @var string $version The current version of this plugin. */ private $version; /** * Initialize the class and set its properties. * * @since 1.0.0 * @param string $plugin_name The name of this plugin. * @param string $version The version of this plugin. */ public function __construct( $plugin_name, $version ) { $this->plugin_name = $plugin_name; $this->version = $version; } /** * Register the stylesheets for the admin area. * * @since 1.0.0 */ public function enqueue_styles() { /** * This function is provided for demonstration purposes only. * * An instance of this class should be passed to the run() function * defined in Wc_Cdp_Loader as all of the hooks are defined * in that particular class. * * The Wc_Cdp_Loader will then create the relationship * between the defined hooks and the functions defined in this * class. */ wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/wc-cdp-admin.css', array(), $this->version, 'all' ); } /** * Register the JavaScript for the admin area. * * @since 1.0.0 */ public function enqueue_scripts() { /** * This function is provided for demonstration purposes only. * * An instance of this class should be passed to the run() function * defined in Wc_Cdp_Loader as all of the hooks are defined * in that particular class. * * The Wc_Cdp_Loader will then create the relationship * between the defined hooks and the functions defined in this * class. */ wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/wc-cdp-admin.js', array( 'jquery' ), $this->version, false ); } /** * Adds the plugin's settings page under WooCommerce's Products tab * * @since 1.0.0 */ public function add_settings_tab( $sections ) { $sections['wc-cdp'] = __( 'Combos de produtos', 'wc-cdp' ); return $sections; } public function display_settings_tab( $settings, $current_section ) { if ( $current_section == 'wc-cdp' ) { $settings_wc_cdp = array(); $settings_wc_cdp[] = array( 'name' => __( 'Combos de produtos', 'wc-cdp' ), 'type' => 'title', 'desc' => __( 'As opções a seguir são usadas para configurar os combos de produtos', 'wc-cdp' ), 'id' => 'wcslider' ); $settings_wc_cdp[] = array( 'name' => __( 'Título do popup', 'wc-cdp' ), 'id' => 'wc_cdp_title', 'type' => 'text', ); $settings_wc_cdp[] = array( 'name' => __( 'Descrição do popup', 'wc-cdp' ), 'id' => 'wc_cdp_description', 'type' => 'textarea', 'desc_tip' => __( 'É exibida logo abaixo do título, antes dos produtos do combo', 'wc-cdp' ), ); $settings_wc_cdp[] = array( 'name' => __( 'Texto do botão', 'wc-cdp' ), 'id' => 'wc_cdp_add_to_cart_text', 'type' => 'text', ); $settings_wc_cdp[] = array( 'name' => __( 'Incluir folha de estilos padrão', 'wc-cdp' ), 'id' => 'wc_cdp_enable_stylesheet', 'type' => 'checkbox', ); $settings_wc_cdp[] = array( 'type' => 'sectionend', 'id' => 'wc-cdp' ); return $settings_wc_cdp; } else { return $settings; } } /** * Adds bundled products fields to the WooCoommerce metabox * * @since 1.0.0 */ public function display_product_fields() { global $post; $product = wc_get_product( $post->ID ); $bundle_products = $product->get_meta('_wc_cdp_bundle_products'); $bundle_coupon = $product->get_meta('_wc_cdp_bundle_coupon'); $coupons = get_posts([ 'posts_per_page' => -1, 'orderby' => 'title', 'order' => 'asc', 'post_type' => 'shop_coupon', 'post_status' => 'publish', 'meta_key' => 'discount_type', 'meta_value' => array('percent', 'fixed_cart'), 'meta_compare' => 'IN', ]); $coupons = array_combine( array_column($coupons, 'post_title'), array_column($coupons, 'post_title') ); $coupons = array( '' => __( 'Não aplicar cupom', 'wc-ped' ) ) + $coupons; require('partials/product-fields.php'); } /** * Saves bundled products info as product metadata * * @since 1.0.0 * * @param int $post_id The post ID. */ public function save_product_fields( $post_id ) { $product = wc_get_product( $post_id ); if ( isset($_POST['_wc_cdp_bundle_products']) && $_POST['_wc_cdp_bundle_products'] ) { $product->update_meta_data( '_wc_cdp_bundle_products', $_POST['_wc_cdp_bundle_products'] ); } if ( isset($_POST['_wc_cdp_bundle_coupon']) ) { $product->update_meta_data( '_wc_cdp_bundle_coupon', $_POST['_wc_cdp_bundle_coupon'] ); } $product->save(); } }