// Limit checkout to a single vendor store add_action( ‘woocommerce_add_to_cart_validation’, ‘limit_single_vendor_to_cart’, 10, 3 ); function limit_single_vendor_to_cart( $valid, $product_id, $quantity ) { $vendor_id = get_post_field( ‘post_author’, $product_id ); // loop through the cart to check each vendor id foreach ( WC()->cart->get_cart()…Continue reading
/** * Add support for Product Expiry for WooCommerce Plugin */ if ( class_exists( ‘WOO_Product_Expiry’) ){ /** * Add fields to the product edit form under prices */ function wcv_pefwc_add_fields( $post_id ){ // Expiry date field. $expiry_date = get_post_meta( $post_id,…Continue reading
/** * Stop Download Manager frontend script from loading on the Pro dashboard. * */ function wcv_dequeue_wpdm_script() { $dashboard_page_id = (array) get_option( ‘wcvendors_dashboard_page_id’, array() ); foreach ( $dashboard_page_id as $page_id ) { if ( is_page( $page_id ) ) { wp_dequeue_script(…Continue reading
/** * Disable All In One SEO on the vendor dashboard. */ add_filter( ‘aioseo_disable’, ‘wcv_aioseo_disable_term_output’ ); function wcv_aioseo_disable_term_output( $disabled ) { $current_page_id = get_the_ID(); if ( wcv_is_dashboard_page( $current_page_id ) ){ return true; } return false; }Continue reading
// Add the woocommerce_before_main_content to the elementor wc-archive-products widget add_action( ‘elementor/widget/render_content’, function( $content, $widget ) { if ( ‘wc-archive-products’ === $widget->get_name() ) { // Run the hooks without outputting the code that `do_action` will want to do ob_start(); do_action(‘woocommerce_before_main_content’); $beforeMainContent…Continue reading
add_filter( ‘wcv_product_price’, ‘price_min_max’ ); function price_min_max( $args ) { $args[‘custom_attributes’] = array( ‘min’ => 3.2, ‘max’ => 200.21, ‘step’ => 0.01, ‘data-parsley-type’ => ‘number’, ‘data-parsley-range-message’ => __( ‘Price must be between 3.2 and 200.01’, ‘wcvendors-pro’ ), ‘pattern’ => ‘[0-9]+([\.,][0-9]+)?’, ‘type’…Continue reading
google-site-verification=DmMH19PL8EFWGPQtwtWbjnRSNF3y5JAmaLFwFBLNW4QContinue reading
function custom_allow_ico_upload($mimes) { $allowed_mime_types = array( ‘ico’ => ‘image/x-icon’ ); // Merge the allowed MIME types with the existing list $mimes = array_merge($mimes, $allowed_mime_types); return $mimes; } add_filter(‘upload_mimes’, ‘custom_allow_ico_upload’); function custom_handle_ico_upload_errors($file, $uploaded_file) { if (!empty($file[‘type’]) && $file[‘type’] === ‘image/x-icon’ &&…Continue reading
// Add WebP MIME type support function add_webp_mime_type($mime_types) { $mime_types[‘webp’] = ‘image/webp’; return $mime_types; } add_filter(‘upload_mimes’, ‘add_webp_mime_type’); // Enable WebP in the Media Library function enable_webp_upload($data, $file) { $file[‘ext’] = ‘webp’; return $data; } add_filter(‘wp_handle_upload_prefilter’, ‘enable_webp_upload’, 10, 2); // Enable…Continue reading