Advertisement
wclovers

Untitled

Jun 22nd, 2023
803
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.75 KB | None | 0 0
  1. add_action('end_wcfm_vendor_settings', function ($vendor_id) {
  2.     global $WCFM;
  3.     $vendor_data        = get_user_meta($vendor_id, 'wcfmmp_profile_settings', true);
  4.     $wcfm_min_order_amt = isset($vendor_data['_wcfm_min_order_amt']) ? absint($vendor_data['_wcfm_min_order_amt']) : 0;
  5.     ?>
  6.     <div class="page_collapsible" id="wcfm_settings_form_min_order_amount_head">
  7.         <label class="wcfmfa fa-cart-plus"></label>
  8.         <?php _e('Min Order Amount', 'wc-frontend-manager'); ?><span></span>
  9.     </div>
  10.     <div class="wcfm-container">
  11.         <div id="wcfm_settings_form_vendor_invoice_expander" class="wcfm-content">
  12.             <?php
  13.             $WCFM->wcfm_fields->wcfm_generate_form_field(array(
  14.                 "_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),
  15.             ));
  16.             ?>
  17.         </div>
  18.     </div>
  19.     <div class="wcfm_clearfix"></div>
  20.     <?php
  21. }, 500);
  22. add_filter('wcfm_marketplace_settings_fields_general', function ($setting_fields, $vendor_id) {
  23.     if (!wcfm_is_vendor()) {
  24.         $vendor_data        = get_user_meta($vendor_id, 'wcfmmp_profile_settings', true);
  25.         $wcfm_min_order_amt = isset($vendor_data['_wcfm_min_order_amt']) ? absint($vendor_data['_wcfm_min_order_amt']) : 0;
  26.         $wcfm_min_order_amt_field = array(
  27.             "_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),
  28.         );
  29.         $setting_fields = array_merge($wcfm_min_order_amt_field, $setting_fields);
  30.     }
  31.     return $setting_fields;
  32. }, 50, 2);
  33. add_action('woocommerce_single_product_summary', function () {
  34.     global $post;
  35.     $vendor_id = 0;
  36.     $product_id = 0;
  37.     if (is_product() && $post && is_object($post)) {
  38.         $product_id = $post->ID;
  39.     }
  40.     if (!$product_id) return;
  41.     $vendor_id = wcfm_get_vendor_id_by_post($product_id);
  42.     if (!$vendor_id) return;
  43.     $vendor_data        = get_user_meta($vendor_id, 'wcfmmp_profile_settings', true);
  44.     $wcfm_min_order_amt = isset($vendor_data['_wcfm_min_order_amt']) ? absint($vendor_data['_wcfm_min_order_amt']) : 0;
  45.     if (!$wcfm_min_order_amt) return;
  46.     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>';
  47. }, 35);
  48. add_action('wcfm_vendor_settings_update', function ($vendor_id, $wcfm_settings_form) {
  49.     if (isset($wcfm_settings_form['_wcfm_min_order_amt'])) {
  50.         $vendor_data = get_user_meta($vendor_id, 'wcfmmp_profile_settings', true);
  51.         $vendor_data['_wcfm_min_order_amt'] = absint($wcfm_settings_form['_wcfm_min_order_amt']);
  52.         update_user_meta($vendor_id, 'wcfmmp_profile_settings', $vendor_data);
  53.     }
  54. }, 500, 2);
  55. add_action('woocommerce_check_cart_items', function () {
  56.     $return = true;
  57.     if (is_cart() || is_checkout()) {
  58.         $vendor_wise_cart_total = array();
  59.         foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
  60.             $cart_product_id = $cart_item['product_id'];
  61.             $cart_product = get_post($cart_product_id);
  62.             if (!isset($vendor_wise_cart_total[$cart_product->post_author])) $vendor_wise_cart_total[$cart_product->post_author] = 0;
  63.             $vendor_wise_cart_total[$cart_product->post_author] += $cart_item['line_total'];
  64.         }
  65.         if (!empty($vendor_wise_cart_total)) {
  66.             foreach ($vendor_wise_cart_total as $vendor_id => $cart_total) {
  67.                 if (wcfm_is_vendor($vendor_id)) {
  68.                     $vendor_data        = get_user_meta($vendor_id, 'wcfmmp_profile_settings', true);
  69.                     $wcfm_min_order_amt = isset($vendor_data['_wcfm_min_order_amt']) ? absint($vendor_data['_wcfm_min_order_amt']) : 0;
  70.                     if ($wcfm_min_order_amt && ($wcfm_min_order_amt > $cart_total)) {
  71.                         wc_clear_notices();
  72.                         $vendor_label = wcfm_get_vendor_store($vendor_id) . ' ' . apply_filters('wcfm_sold_by_label', $vendor_id, __('Store', 'wc-frontend-manager'));
  73.                         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');
  74.                         $return = false;
  75.                         break;
  76.                     }
  77.                 }
  78.             }
  79.         }
  80.     }
  81.     return $return;
  82. }, 1000);
  83.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement