Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function is_allowed_for_vendor($vendor_id) {
- $allowed_membership_ids = [100, 3117, 3121, 3123, 3124];
- if(wcfm_is_vendor($vendor_id)) {
- $wcfm_membership_id = get_user_meta( $vendor_id, 'wcfm_membership', true );
- return (wcfm_is_valid_membership( $wcfm_membership_id ) && in_array($wcfm_membership_id, $allowed_membership_ids));
- }
- return false;
- }
- add_action( 'end_wcfm_vendor_settings', function( $vendor_id ) {
- if(!is_allowed_for_vendor($vendor_id)) return;
- global $WCFM, $WCFMmp;
- $wcfm_min_order_amt = get_user_meta( $vendor_id, '_wcfm_min_order_amt', true );
- ?>
- <div class="page_collapsible" id="wcfm_settings_form_min_order_amount_head">
- <label class="wcfmfa fa-cart-plus"></label>
- <?php _e('Min Order Amount', 'wc-frontend-manager'); ?>
- </div>
- <div class="wcfm-container">
- <div id="wcfm_settings_form_vendor_invoice_expander" class="wcfm-content">
- <?php
- $WCFM->wcfm_fields->wcfm_generate_form_field( array(
- "_wcfm_min_order_amt" => array('label' => __('Minimum Amount', 'wc-frontend-manager'), 'type' => 'number', 'class' => 'wcfm-text wcfm_non_negative_input wcfm_ele', 'label_class' => 'wcfm_title wcfm_ele', 'value' => $wcfm_min_order_amt ),
- ) );
- ?>
- </div>
- </div>
- <div class="wcfm_clearfix"></div>
- <?php
- }, 500 );
- add_filter( 'wcfm_marketplace_settings_fields_general', function( $setting_fields, $vendor_id ) {
- if(!is_allowed_for_vendor($vendor_id)) return $setting_fields;
- if( !wcfm_is_vendor() ) {
- $wcfm_min_order_amt = get_user_meta( $vendor_id, '_wcfm_min_order_amt', true );
- $wcfm_min_order_amt_field = array(
- "_wcfm_min_order_amt" => array('label' => __('Minimum Amount', 'wc-frontend-manager'), 'type' => 'number', 'class' => 'wcfm-text wcfm_non_negative_input wcfm_ele', 'label_class' => 'wcfm_title wcfm_ele', 'value' => $wcfm_min_order_amt ),
- );
- $setting_fields = array_merge( $wcfm_min_order_amt_field, $setting_fields );
- }
- return $setting_fields;
- }, 50, 2 );
- add_action( 'woocommerce_single_product_summary', function() {
- global $WCFM, $WCFMmp, $post;
- $vendor_id = 0;
- $product_id = 0;
- if( is_product() && $post && is_object( $post ) ) {
- $product_id = $post->ID;
- }
- if( !$product_id ) return;
- $vendor_id = wcfm_get_vendor_id_by_post( $product_id );
- if( !$vendor_id || !is_allowed_for_vendor($vendor_id)) return;
- $wcfm_min_order_amt = get_user_meta( $vendor_id, '_wcfm_min_order_amt', true );
- if( !$wcfm_min_order_amt ) return;
- echo '<div class="wcfm_clearfix"></div><div class="wcfmmp_shipment_processing_display">'. __( 'Minimum order amount should be ', 'wc-multivendor-marketplace' ) . ' ' . wc_price( $wcfm_min_order_amt ) .'</div><div class="wcfm_clearfix"></div>';
- }, 35 );
- add_action( 'wcfm_vendor_settings_update', function( $vendor_id, $wcfm_settings_form ) {
- if(!is_allowed_for_vendor($vendor_id)) return;
- global $WCFM, $WCFMmp;
- if( isset( $wcfm_settings_form['_wcfm_min_order_amt'] ) ) {
- $wcfm_min_order_amt = $wcfm_settings_form['_wcfm_min_order_amt'];
- update_user_meta( $vendor_id, '_wcfm_min_order_amt', $wcfm_min_order_amt );
- }
- }, 500, 2 );
- add_action( 'woocommerce_check_cart_items', function() {
- $return = true;
- $chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
- $chosen_shipping = reset($chosen_methods);
- if(!$chosen_shipping) return $return;
- if ( 0 === strpos( $chosen_shipping, 'local_pickup' ) ) return $return;
- if( is_cart() || is_checkout() ) {
- $vendor_wise_cart_total = array();
- foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
- $cart_product_id = $cart_item['product_id'];
- $cart_product = get_post( $cart_product_id );
- if( !isset( $vendor_wise_cart_total[$cart_product->post_author] ) ) $vendor_wise_cart_total[$cart_product->post_author] = 0;
- $vendor_wise_cart_total[$cart_product->post_author] += $cart_item['line_total'];
- }
- if( !empty( $vendor_wise_cart_total ) ) {
- foreach( $vendor_wise_cart_total as $vendor_id => $cart_total ) {
- if( wcfm_is_vendor( $vendor_id ) && is_allowed_for_vendor($vendor_id)) {
- $wcfm_min_order_amt = get_user_meta( $vendor_id, '_wcfm_min_order_amt', true );
- if( $wcfm_min_order_amt && ( $wcfm_min_order_amt > $cart_total ) ) {
- wc_clear_notices();
- $vendor_label = wcfm_get_vendor_store( $vendor_id ) . ' ' . apply_filters( 'wcfm_sold_by_label', $vendor_id, __( 'Store', 'wc-frontend-manager' ) );
- wc_add_notice( sprintf( __( "%s minimum order amount should be %s, please add few more items from this store!", "wc-frontend-manager" ), $vendor_label, wc_price( $wcfm_min_order_amt ) ), 'error' );
- $return = false;
- break;
- }
- }
- }
- }
- }
- return $return;
- }, 1000 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement