Advertisement
palsushobhan

wcfm-restrict-product-add-if-store-setup-not-complete.php

Sep 22nd, 2021
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.86 KB | None | 0 0
  1. add_filter( 'wcfm_is_allow_pm_add_products', function( $is_allow ) {
  2.     global $wp;
  3.     if ( $is_allow && function_exists( 'wcfm_is_vendor' ) && wcfm_is_vendor() ) {
  4.         $vendor_id = apply_filters( 'wcfm_current_vendor_id', get_current_user_id() );
  5.         if(check_profile_completeness_percent($vendor_id) < 100) {
  6.             $is_allow = false;
  7.             if ( isset( $wp->query_vars['wcfm-products-manage'] ) ) {
  8.                 wcfm_restriction_message_show( __( "You'll need to complete your store setup before adding new products!", "wc-fronend-manager" ), false, true );
  9.             }
  10.         }
  11.     }
  12.     return $is_allow;
  13. }, 60 );
  14.  
  15. function check_profile_completeness_percent($user_id) {
  16.     $vendor_data = get_user_meta($user_id, 'wcfmmp_profile_settings', true);
  17.     $profile_complete_components = apply_filters('vendor_profile_complete_components', array(
  18.         'banner'     => 'wcfm_profile_componenet_banner',
  19.         'gravatar'   => 'wcfm_profile_componenet_logo',
  20.         'store_name' => 'wcfm_profile_componenet_name',
  21.         'phone'      => 'wcfm_profile_componenet_phone',
  22.         'about'      => 'wcfm_profile_componenet_description',
  23.         'address'    => 'wcfm_profile_componenet_address',
  24.         'location'   => 'wcfm_profile_componenet_location',
  25.         'payment'    => 'wcfm_profile_componenet_payment',
  26.         'policy'     => 'wcfm_profile_componenet_policy',
  27.         'support'    => 'wcfm_profile_componenet_support',
  28.         'seo'        => 'wcfm_profile_componenet_vseo',
  29.         'shipping'   => 'wcfm_profile_componenet_vshipping'
  30.     ));
  31.     $component = $completed = 0;
  32.     foreach($profile_complete_components as $componenet => $callback) {
  33.         if(is_callable($callback)) {
  34.             $result = call_user_func($callback, $user_id, $vendor_data);
  35.             if( $result !== -1 ) {
  36.                $component++;
  37.                $completed += $result;
  38.             }
  39.         }
  40.     }
  41.     return ($completed / $component) * 100;
  42. }
  43.  
  44. function wcfm_profile_componenet_banner($user_id, $vendor_data) {
  45.     if(apply_filters( 'wcfm_is_allow_store_banner', true )) {
  46.         if(isset( $vendor_data['banner'] ) && absint( $vendor_data['banner'] )) {
  47.             return 1;
  48.         }
  49.         return 0;
  50.     }
  51.     return -1;
  52. }
  53.  
  54. function wcfm_profile_componenet_logo($user_id, $vendor_data) {
  55.     if(apply_filters( 'wcfm_is_allow_store_logo', true )) {
  56.         if(isset( $vendor_data['gravatar'] ) && absint( $vendor_data['gravatar'] )) {
  57.             return 1;
  58.         }
  59.         return 0;
  60.     }
  61.     return -1;
  62. }
  63.  
  64. function wcfm_profile_componenet_name($user_id, $vendor_data) {
  65.     if(apply_filters( 'wcfm_is_allow_store_name', true )) {
  66.         if(isset( $vendor_data['store_name'] ) && esc_attr( $vendor_data['store_name'] )) {
  67.             return 1;
  68.         }
  69.         return 0;
  70.     }
  71.     return -1;
  72. }
  73.  
  74. function wcfm_profile_componenet_phone($user_id, $vendor_data) {
  75.     if(apply_filters( 'wcfm_is_allow_store_phone', true )) {
  76.         if(isset( $vendor_data['phone'] ) && !is_array( $vendor_data['phone'] ) && esc_attr( $vendor_data['phone'] )) {
  77.             return 1;
  78.         }
  79.         return 0;
  80.     }
  81.     return -1;
  82. }
  83.  
  84. function wcfm_profile_componenet_description($user_id, $vendor_data) {
  85.     if(apply_filters( 'wcfm_is_allow_store_description', true )) {
  86.         if(wcfm_get_user_meta( $user_id, '_store_description', true )) {
  87.             return 1;
  88.         }
  89.         return 0;
  90.     }
  91.     return -1;
  92. }
  93.  
  94. function wcfm_profile_componenet_address($user_id, $vendor_data) {
  95.     if(apply_filters( 'wcfm_is_allow_store_address', true )) {
  96.         $street_1 = isset( $vendor_data['address']['street_1'] ) ? $vendor_data['address']['street_1'] : '';
  97.         $country = isset( $vendor_data['address']['country'] ) ? $vendor_data['address']['country'] : '';
  98.         if($street_1 && $country) {
  99.             return 1;
  100.         }
  101.         return 0;
  102.     }
  103.     return -1;
  104. }
  105.  
  106. function wcfm_profile_componenet_location($user_id, $vendor_data) {
  107.     global $WCFMmp;
  108.     if(apply_filters( 'wcfm_is_allow_store_address', true ) && apply_filters( 'wcfm_is_allow_store_map_location', true )) {
  109.         $api_key = isset( $WCFMmp->wcfmmp_marketplace_options['wcfm_google_map_api'] ) ? $WCFMmp->wcfmmp_marketplace_options['wcfm_google_map_api'] : '';
  110.         $wcfm_map_lib = isset( $WCFMmp->wcfmmp_marketplace_options['wcfm_map_lib'] ) ? $WCFMmp->wcfmmp_marketplace_options['wcfm_map_lib'] : '';
  111.         if( !$wcfm_map_lib && $api_key ) {
  112.             $wcfm_map_lib = 'google';
  113.         } elseif( !$wcfm_map_lib && !$api_key ) {
  114.             $wcfm_map_lib = 'leaftlet';
  115.         }
  116.         if( ( ( $wcfm_map_lib == 'google' && !empty( $api_key ) ) || $wcfm_map_lib == 'leaflet' ) &&
  117.         isset( $vendor_data['store_location'] ) && esc_attr( $vendor_data['store_location'] )
  118.         ) {
  119.             return 1;
  120.         }
  121.         return 0;
  122.     }
  123.     return -1;
  124. }
  125.  
  126. function wcfm_profile_componenet_payment($user_id, $vendor_data) {
  127.     if(apply_filters( 'wcfm_is_pref_withdrawal', true ) && apply_filters( 'wcfm_is_allow_billing_settings', true )) {
  128.         $payment_mode = isset( $vendor_data['payment']['method'] ) ? esc_attr( $vendor_data['payment']['method'] ) : '' ;
  129.         $paypal = isset( $vendor_data['payment']['paypal']['email'] ) ? esc_attr( $vendor_data['payment']['paypal']['email'] ) : '' ;
  130.         $skrill = isset( $vendor_data['payment']['skrill']['email'] ) ? esc_attr( $vendor_data['payment']['skrill']['email'] ) : '' ;
  131.         $ac_number = isset( $vendor_data['payment']['bank']['ac_number'] ) ? esc_attr( $vendor_data['payment']['bank']['ac_number'] ) : '';
  132.         if( $payment_mode && ( $paypal || $skrill || $ac_number || $payment_mode == 'stripe' || $payment_mode == 'by_cash' ) ) {
  133.             return 1;
  134.         }
  135.         return 0;
  136.     }
  137.     return -1;
  138. }
  139.  
  140. function wcfm_profile_componenet_policy($user_id, $vendor_data) {
  141.     if(apply_filters( 'wcfm_is_pref_policies', true ) && apply_filters( 'wcfm_is_allow_policy_settings', true )) {
  142.         $wcfm_policy_vendor_options = (array) get_user_meta( $user_id, 'wcfm_policy_vendor_options', true );
  143.         $_wcfm_vendor_policy_tab_title = isset( $wcfm_policy_vendor_options['policy_tab_title'] ) ? $wcfm_policy_vendor_options['policy_tab_title'] : '';
  144.         $_wcfm_vendor_shipping_policy = isset( $wcfm_policy_vendor_options['shipping_policy'] ) ? $wcfm_policy_vendor_options['shipping_policy'] : '';
  145.         $_wcfm_vendor_refund_policy = isset( $wcfm_policy_vendor_options['refund_policy'] ) ? $wcfm_policy_vendor_options['refund_policy'] : '';
  146.         $_wcfm_vendor_cancellation_policy = isset( $wcfm_policy_vendor_options['cancellation_policy'] ) ? $wcfm_policy_vendor_options['cancellation_policy'] : '';
  147.         if( $_wcfm_vendor_policy_tab_title && $_wcfm_vendor_shipping_policy && $_wcfm_vendor_refund_policy && $_wcfm_vendor_cancellation_policy ) {
  148.             return 1;
  149.         }
  150.         return 0;
  151.     }
  152.     return -1;
  153. }
  154.  
  155. function wcfm_profile_componenet_support($user_id, $vendor_data) {
  156.     if(apply_filters( 'wcfm_is_allow_customer_support_settings', true ) && apply_filters( 'wcfm_is_allow_customer_support', true )) {
  157.         $vendor_customer_phone = isset( $vendor_data['customer_support']['phone'] ) ? $vendor_data['customer_support']['phone'] : '';
  158.         $vendor_customer_email = isset( $vendor_data['customer_support']['email'] ) ? $vendor_data['customer_support']['email'] : '';
  159.         $vendor_csd_return_address1 = isset( $vendor_data['customer_support']['address1'] ) ? $vendor_data['customer_support']['address1'] : '';
  160.         $vendor_csd_return_country = isset( $vendor_data['customer_support']['country'] ) ? $vendor_data['customer_support']['country'] : '';
  161.        
  162.         if( $vendor_customer_phone && $vendor_customer_email && $vendor_csd_return_address1 && $vendor_csd_return_country ) {
  163.             return 1;
  164.         }
  165.         return 0;
  166.     }
  167.     return -1;
  168. }
  169.  
  170. function wcfm_profile_componenet_vseo($user_id, $vendor_data) {
  171.     if(apply_filters( 'wcfm_is_allow_vseo_settings', true )) {
  172.         $wcfmmp_seo_meta_title = isset( $vendor_data['store_seo']['wcfmmp-seo-meta-title'] ) ? $vendor_data['store_seo']['wcfmmp-seo-meta-title'] : '';
  173.         $wcfmmp_seo_meta_desc = isset( $vendor_data['store_seo']['wcfmmp-seo-meta-desc'] ) ? $vendor_data['store_seo']['wcfmmp-seo-meta-desc'] : '';
  174.         $wcfmmp_seo_meta_keywords    = isset( $vendor_data['store_seo']['wcfmmp-seo-meta-keywords'] ) ? $vendor_data['store_seo']['wcfmmp-seo-meta-keywords'] : '';
  175.         if( $wcfmmp_seo_meta_title && $wcfmmp_seo_meta_desc && $wcfmmp_seo_meta_keywords ) {
  176.             return 1;
  177.         }
  178.         return 0;
  179.     }
  180.     return -1;
  181. }
  182.  
  183. function wcfm_profile_componenet_vshipping($user_id, $vendor_data) {
  184.     if(apply_filters( 'wcfm_is_allow_shipping', true ) && apply_filters( 'wcfm_is_allow_vshipping_settings', true )) {
  185.         return 1;
  186.     }
  187.     return -1;
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement