Changeset 3372523
- Timestamp:
- 10/03/2025 05:23:52 PM (5 months ago)
- Location:
- b2bking-wholesale-for-woocommerce/trunk
- Files:
-
- 4 edited
-
b2bking.php (modified) (3 diffs)
-
includes/class-b2bking.php (modified) (5 diffs)
-
languages/b2bking.pot (modified) (27 diffs)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
b2bking-wholesale-for-woocommerce/trunk/b2bking.php
r3367328 r3372523 5 5 * Plugin URI: https://codecanyon.net/item/b2bking-the-ultimate-woocommerce-b2b-plugin/26689576 6 6 * Description: B2BKing is the complete solution for turning WooCommerce into an enterprise-level B2B e-commerce platform. Core Plugin. 7 * Version: 4.9. 207 * Version: 4.9.30 8 8 * Author: WebWizards 9 9 * Author URI: webwizards.dev … … 11 11 * Domain Path: /languages 12 12 * WC requires at least: 5.0.0 13 * WC tested up to: 10.2. 113 * WC tested up to: 10.2.2 14 14 */ 15 15 … … 21 21 define( 'B2BKINGCORE_DIR', plugin_dir_path( __FILE__ ) ); 22 22 if ( ! defined( 'B2BKINGCORE_VERSION' ) ) { 23 define( 'B2BKINGCORE_VERSION', 'v4.9. 20');23 define( 'B2BKINGCORE_VERSION', 'v4.9.30'); 24 24 } 25 25 -
b2bking-wholesale-for-woocommerce/trunk/includes/class-b2bking.php
r3137054 r3372523 103 103 }); 104 104 105 // Approve and Reject users 106 add_action( 'wp_ajax_b2bkingapproveuser', array($this, 'b2bkingapproveuser') ); 107 add_action( 'wp_ajax_nopriv_b2bkingapproveuser', array($this, 'b2bkingapproveuser') ); 108 add_action( 'wp_ajax_b2bkingrejectuser', array($this, 'b2bkingrejectuser') ); 105 // Approve and Reject users 106 add_action( 'wp_ajax_b2bkingapproveuser', array($this, 'b2bkingapproveuser') ); 107 add_action( 'wp_ajax_b2bkingrejectuser', array($this, 'b2bkingrejectuser') ); 109 108 110 109 // Dismiss "activate woocommerce" admin notice permanently … … 129 128 add_action( 'wp_ajax_b2bking_dismiss_review_admin_notice_temporary', array( $this, 'b2bking_dismiss_review_admin_notice_temporary' ) ); 130 129 131 // Save Special group settings (b2c and guests) in groups 132 add_action( 'wp_ajax_nopriv_b2bking_b2c_special_group_save_settings', array($this, 'b2bking_b2c_special_group_save_settings') ); 133 add_action( 'wp_ajax_b2bking_b2c_special_group_save_settings', array($this, 'b2bking_b2c_special_group_save_settings') ); 134 add_action( 'wp_ajax_nopriv_b2bking_logged_out_special_group_save_settings', array($this, 'b2bking_logged_out_special_group_save_settings') ); 135 add_action( 'wp_ajax_b2bking_logged_out_special_group_save_settings', array($this, 'b2bking_logged_out_special_group_save_settings') ); 136 137 // Backend Customers Panel 138 add_action( 'wp_ajax_nopriv_b2bking_admin_customers_ajax', array($this, 'b2bking_admin_customers_ajax') ); 139 add_action( 'wp_ajax_b2bking_admin_customers_ajax', array($this, 'b2bking_admin_customers_ajax') ); 140 141 // Backend Update User Data 142 add_action( 'wp_ajax_nopriv_b2bkingupdateuserdata', array($this, 'b2bkingupdateuserdata') ); 143 add_action( 'wp_ajax_b2bkingupdateuserdata', array($this, 'b2bkingupdateuserdata') ); 144 145 // Get page content function 130 // Save Special group settings (b2c and guests) in groups 131 add_action( 'wp_ajax_b2bking_b2c_special_group_save_settings', array($this, 'b2bking_b2c_special_group_save_settings') ); 132 add_action( 'wp_ajax_b2bking_logged_out_special_group_save_settings', array($this, 'b2bking_logged_out_special_group_save_settings') ); 133 134 // Backend Customers Panel 135 add_action( 'wp_ajax_b2bking_admin_customers_ajax', array($this, 'b2bking_admin_customers_ajax') ); 136 137 // Backend Update User Data 138 add_action( 'wp_ajax_b2bkingupdateuserdata', array($this, 'b2bkingupdateuserdata') ); 139 140 // Get page content function 146 141 add_action( 'wp_ajax_b2bking_get_page_content', array($this, 'b2bking_get_page_content') ); 147 add_action( 'wp_ajax_nopriv_b2bking_get_page_content', array($this, 'b2bking_get_page_content') ); 148 149 // refresh dashboard data 150 add_action( 'wp_ajax_nopriv_b2bking_refresh_dashboard_data', array($this, 'b2bking_refresh_dashboard_data') ); 151 add_action( 'wp_ajax_b2bking_refresh_dashboard_data', array($this, 'b2bking_refresh_dashboard_data') ); 152 153 // Reports get data 154 add_action( 'wp_ajax_nopriv_b2bking_reports_get_data', array($this, 'b2bking_reports_get_data') ); 155 add_action( 'wp_ajax_b2bking_reports_get_data', array($this, 'b2bking_reports_get_data') ); 156 157 158 add_action( 'wp_ajax_nopriv_b2bkingchangefield', array($this, 'b2bkingchangefield') ); 159 add_action( 'wp_ajax_b2bkingchangefield', array($this, 'b2bkingchangefield') ); 160 161 add_action( 'wp_ajax_nopriv_b2bking_clear_rules_caches', array($this, 'b2bking_clear_rules_caches') ); 162 add_action( 'wp_ajax_b2bking_clear_rules_caches', array($this, 'b2bking_clear_rules_caches') ); 163 // required 164 add_action( 'wp_ajax_nopriv_b2bkingchangefieldrequired', array($this, 'b2bkingchangefieldrequired') ); 165 add_action( 'wp_ajax_b2bkingchangefieldrequired', array($this, 'b2bkingchangefieldrequired') ); 166 //placeholder 167 add_action( 'wp_ajax_nopriv_b2bkingsavefieldplaceholder', array($this, 'b2bkingsavefieldplaceholder') ); 168 add_action( 'wp_ajax_b2bkingsavefieldplaceholder', array($this, 'b2bkingsavefieldplaceholder') ); 169 170 add_action( 'wp_ajax_nopriv_b2bkingsavefieldlabel', array($this, 'b2bkingsavefieldlabel') ); 171 add_action( 'wp_ajax_b2bkingsavefieldlabel', array($this, 'b2bkingsavefieldlabel') ); 172 173 add_action( 'wp_ajax_nopriv_b2bking_save_posts_per_page', array($this, 'b2bking_save_posts_per_page') ); 174 add_action( 'wp_ajax_b2bking_save_posts_per_page', array($this, 'b2bking_save_posts_per_page') ); 142 143 // refresh dashboard data 144 add_action( 'wp_ajax_b2bking_refresh_dashboard_data', array($this, 'b2bking_refresh_dashboard_data') ); 145 146 // Reports get data 147 add_action( 'wp_ajax_b2bking_reports_get_data', array($this, 'b2bking_reports_get_data') ); 148 149 150 add_action( 'wp_ajax_b2bkingchangefield', array($this, 'b2bkingchangefield') ); 151 152 add_action( 'wp_ajax_b2bking_clear_rules_caches', array($this, 'b2bking_clear_rules_caches') ); 153 // required 154 add_action( 'wp_ajax_b2bkingchangefieldrequired', array($this, 'b2bkingchangefieldrequired') ); 155 //placeholder 156 add_action( 'wp_ajax_b2bkingsavefieldplaceholder', array($this, 'b2bkingsavefieldplaceholder') ); 157 158 add_action( 'wp_ajax_b2bkingsavefieldlabel', array($this, 'b2bkingsavefieldlabel') ); 159 160 add_action( 'wp_ajax_b2bking_save_posts_per_page', array($this, 'b2bking_save_posts_per_page') ); 175 161 176 162 add_action( 'wp_ajax_b2bking_update_sort_menu_order', array($this, 'b2bking_update_sort_menu_order') ); … … 1433 1419 } 1434 1420 1421 // Capability check 1422 if (!current_user_can( apply_filters('b2bking_backend_capability_needed', 'manage_woocommerce') )){ 1423 wp_send_json_error( 'Failed capability check.' ); 1424 wp_die(); 1425 } 1426 1435 1427 $user_id = sanitize_text_field($_POST['userid']); 1436 1428 $fields_string = sanitize_text_field($_POST['field_strings']); … … 1465 1457 wp_send_json_error( 'Invalid security token sent.' ); 1466 1458 wp_die(); 1459 } 1460 1461 // Capability check 1462 if (!current_user_can( apply_filters('b2bking_backend_capability_needed', 'manage_woocommerce') )){ 1463 wp_send_json_error( 'Failed capability check.' ); 1464 wp_die(); 1467 1465 } 1468 1466 … … 1526 1524 wp_send_json_error( 'Invalid security token sent.' ); 1527 1525 wp_die(); 1526 } 1527 1528 // Capability check 1529 if (!current_user_can( apply_filters('b2bking_backend_capability_needed', 'manage_woocommerce') )){ 1530 wp_send_json_error( 'Failed capability check.' ); 1531 wp_die(); 1528 1532 } 1529 1533 -
b2bking-wholesale-for-woocommerce/trunk/languages/b2bking.pot
r3137054 r3372523 3 3 msgstr "" 4 4 "Project-Id-Version: B2BKing Core\n" 5 "POT-Creation-Date: 202 4-08-17 18:01+0300\n"6 "PO-Revision-Date: 202 4-08-17 18:01+0300\n"5 "POT-Creation-Date: 2025-10-03 19:18+0200\n" 6 "PO-Revision-Date: 2025-10-03 19:18+0200\n" 7 7 "Last-Translator: \n" 8 8 "Language-Team: \n" … … 11 11 "Content-Transfer-Encoding: 8bit\n" 12 12 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" 13 "X-Generator: Poedit 3.4 \n"13 "X-Generator: Poedit 3.4.4\n" 14 14 "X-Poedit-Basepath: ..\n" 15 15 "X-Poedit-Flags-xgettext: --add-comments=translators:\n" … … 2024 2024 msgstr "" 2025 2025 2026 #: admin/class-b2bking-admin.php:6776 includes/class-b2bking.php:12 702026 #: admin/class-b2bking-admin.php:6776 includes/class-b2bking.php:1256 2027 2027 msgid "Subaccount" 2028 2028 msgstr "" 2029 2029 2030 #: admin/class-b2bking-admin.php:6778 includes/class-b2bking.php:12 722030 #: admin/class-b2bking-admin.php:6778 includes/class-b2bking.php:1258 2031 2031 msgid "Main business account" 2032 2032 msgstr "" 2033 2033 2034 #: admin/class-b2bking-admin.php:6806 includes/class-b2bking.php:1 3002034 #: admin/class-b2bking-admin.php:6806 includes/class-b2bking.php:1286 2035 2035 msgid "Waiting Approval" 2036 2036 msgstr "" … … 2335 2335 msgstr "" 2336 2336 2337 #: admin/class-b2bking-admin.php:7617 includes/class-b2bking.php:1 892337 #: admin/class-b2bking-admin.php:7617 includes/class-b2bking.php:175 2338 2338 msgid "Disabled" 2339 2339 msgstr "" … … 2884 2884 msgstr "" 2885 2885 2886 #: includes/class-b2bking.php:8 892886 #: includes/class-b2bking.php:875 2887 2887 msgid "Invalid post type." 2888 2888 msgstr "" 2889 2889 2890 #: includes/class-b2bking.php:8 942890 #: includes/class-b2bking.php:880 2891 2891 msgid "You need a higher level of permission." 2892 2892 msgstr "" 2893 2893 2894 #: includes/class-b2bking.php:8 952894 #: includes/class-b2bking.php:881 2895 2895 msgid "Sorry, you are not allowed to edit posts in this post type." 2896 2896 msgstr "" 2897 2897 2898 #: includes/class-b2bking.php:9 682898 #: includes/class-b2bking.php:954 2899 2899 #, php-format 2900 2900 msgid "%s post updated." … … 2903 2903 msgstr[1] "" 2904 2904 2905 #: includes/class-b2bking.php:9 692905 #: includes/class-b2bking.php:955 2906 2906 msgid "1 post not updated, somebody is editing it." 2907 2907 msgstr "" 2908 2908 2909 #: includes/class-b2bking.php:9 712909 #: includes/class-b2bking.php:957 2910 2910 #, php-format 2911 2911 msgid "%s post not updated, somebody is editing it." … … 2914 2914 msgstr[1] "" 2915 2915 2916 #: includes/class-b2bking.php:9 732916 #: includes/class-b2bking.php:959 2917 2917 #, php-format 2918 2918 msgid "%s post permanently deleted." … … 2921 2921 msgstr[1] "" 2922 2922 2923 #: includes/class-b2bking.php:9 742923 #: includes/class-b2bking.php:960 2924 2924 #, php-format 2925 2925 msgid "%s post moved to the Trash." … … 2928 2928 msgstr[1] "" 2929 2929 2930 #: includes/class-b2bking.php:9 752930 #: includes/class-b2bking.php:961 2931 2931 #, php-format 2932 2932 msgid "%s post restored from the Trash." … … 2935 2935 msgstr[1] "" 2936 2936 2937 #: includes/class-b2bking.php:9 782937 #: includes/class-b2bking.php:964 2938 2938 #, php-format 2939 2939 msgid "%s page updated." … … 2942 2942 msgstr[1] "" 2943 2943 2944 #: includes/class-b2bking.php:9 792944 #: includes/class-b2bking.php:965 2945 2945 msgid "1 page not updated, somebody is editing it." 2946 2946 msgstr "" 2947 2947 2948 #: includes/class-b2bking.php:9 802948 #: includes/class-b2bking.php:966 2949 2949 #, php-format 2950 2950 msgid "%s page not updated, somebody is editing it." … … 2953 2953 msgstr[1] "" 2954 2954 2955 #: includes/class-b2bking.php:9 812955 #: includes/class-b2bking.php:967 2956 2956 #, php-format 2957 2957 msgid "%s page permanently deleted." … … 2960 2960 msgstr[1] "" 2961 2961 2962 #: includes/class-b2bking.php:9 822962 #: includes/class-b2bking.php:968 2963 2963 #, php-format 2964 2964 msgid "%s page moved to the Trash." … … 2967 2967 msgstr[1] "" 2968 2968 2969 #: includes/class-b2bking.php:9 832969 #: includes/class-b2bking.php:969 2970 2970 #, php-format 2971 2971 msgid "%s page restored from the Trash." … … 2974 2974 msgstr[1] "" 2975 2975 2976 #: includes/class-b2bking.php:9 862976 #: includes/class-b2bking.php:972 2977 2977 #, php-format 2978 2978 msgid "%s block updated." … … 2981 2981 msgstr[1] "" 2982 2982 2983 #: includes/class-b2bking.php:9 872983 #: includes/class-b2bking.php:973 2984 2984 msgid "1 block not updated, somebody is editing it." 2985 2985 msgstr "" 2986 2986 2987 #: includes/class-b2bking.php:9 882987 #: includes/class-b2bking.php:974 2988 2988 #, php-format 2989 2989 msgid "%s block not updated, somebody is editing it." … … 2992 2992 msgstr[1] "" 2993 2993 2994 #: includes/class-b2bking.php:9 892994 #: includes/class-b2bking.php:975 2995 2995 #, php-format 2996 2996 msgid "%s block permanently deleted." … … 2999 2999 msgstr[1] "" 3000 3000 3001 #: includes/class-b2bking.php:9 903001 #: includes/class-b2bking.php:976 3002 3002 #, php-format 3003 3003 msgid "%s block moved to the Trash." … … 3006 3006 msgstr[1] "" 3007 3007 3008 #: includes/class-b2bking.php:9 913008 #: includes/class-b2bking.php:977 3009 3009 #, php-format 3010 3010 msgid "%s block restored from the Trash." … … 3013 3013 msgstr[1] "" 3014 3014 3015 #: includes/class-b2bking.php:10 153015 #: includes/class-b2bking.php:1001 3016 3016 #, php-format 3017 3017 msgid "Search results for: %s" 3018 3018 msgstr "" 3019 3019 3020 #: includes/class-b2bking.php:10 383020 #: includes/class-b2bking.php:1024 3021 3021 msgid "Undo" 3022 3022 msgstr "" … … 3036 3036 3037 3037 #: includes/emails/class-b2bking-new-customer-email.php:106 3038 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:1023039 #: includes/emails/class-b2bking-new-message-email.php:893040 #: includes/emails/class-b2bking-your-account-approved-email.php:823041 msgid "Enable/Disable"3042 msgstr ""3043 3044 #: includes/emails/class-b2bking-new-customer-email.php:1083045 3038 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:104 3046 3039 #: includes/emails/class-b2bking-new-message-email.php:91 3047 #: includes/emails/class-b2bking-your-account-approved-email.php:84 3040 #: includes/emails/class-b2bking-your-account-approved-email.php:85 3041 msgid "Enable/Disable" 3042 msgstr "" 3043 3044 #: includes/emails/class-b2bking-new-customer-email.php:108 3045 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:106 3046 #: includes/emails/class-b2bking-new-message-email.php:93 3047 #: includes/emails/class-b2bking-your-account-approved-email.php:87 3048 3048 msgid "Enable this email notification" 3049 3049 msgstr "" 3050 3050 3051 3051 #: includes/emails/class-b2bking-new-customer-email.php:112 3052 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:1 083052 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:110 3053 3053 msgid "Recipient(s)" 3054 3054 msgstr "" 3055 3055 3056 3056 #: includes/emails/class-b2bking-new-customer-email.php:114 3057 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:11 03057 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:112 3058 3058 msgid "Enter recipients (comma separated) for this email. Defaults to" 3059 3059 msgstr "" 3060 3060 3061 3061 #: includes/emails/class-b2bking-new-customer-email.php:121 3062 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:11 73063 #: includes/emails/class-b2bking-new-message-email.php:9 73064 #: includes/emails/class-b2bking-your-account-approved-email.php:9 03062 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:119 3063 #: includes/emails/class-b2bking-new-message-email.php:99 3064 #: includes/emails/class-b2bking-your-account-approved-email.php:93 3065 3065 msgid "" 3066 3066 "This controls the email subject line. Leave blank to use the default " … … 3069 3069 3070 3070 #: includes/emails/class-b2bking-new-customer-email.php:126 3071 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:1223072 #: includes/emails/class-b2bking-new-message-email.php:1023073 #: includes/emails/class-b2bking-your-account-approved-email.php:953074 msgid "Email Heading"3075 msgstr ""3076 3077 #: includes/emails/class-b2bking-new-customer-email.php:1283078 3071 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:124 3079 3072 #: includes/emails/class-b2bking-new-message-email.php:104 3080 #: includes/emails/class-b2bking-your-account-approved-email.php:97 3073 #: includes/emails/class-b2bking-your-account-approved-email.php:98 3074 msgid "Email Heading" 3075 msgstr "" 3076 3077 #: includes/emails/class-b2bking-new-customer-email.php:128 3078 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:126 3079 #: includes/emails/class-b2bking-new-message-email.php:106 3080 #: includes/emails/class-b2bking-your-account-approved-email.php:100 3081 3081 msgid "" 3082 3082 "This controls the main heading contained within the email notification. " … … 3085 3085 3086 3086 #: includes/emails/class-b2bking-new-customer-email.php:133 3087 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:1293088 #: includes/emails/class-b2bking-new-message-email.php:1093089 #: includes/emails/class-b2bking-your-account-approved-email.php:1023090 msgid "Email type"3091 msgstr ""3092 3093 #: includes/emails/class-b2bking-new-customer-email.php:1353094 3087 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:131 3095 3088 #: includes/emails/class-b2bking-new-message-email.php:111 3096 #: includes/emails/class-b2bking-your-account-approved-email.php:104 3089 #: includes/emails/class-b2bking-your-account-approved-email.php:105 3090 msgid "Email type" 3091 msgstr "" 3092 3093 #: includes/emails/class-b2bking-new-customer-email.php:135 3094 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:133 3095 #: includes/emails/class-b2bking-new-message-email.php:113 3096 #: includes/emails/class-b2bking-your-account-approved-email.php:107 3097 3097 msgid "Choose which format of email to send." 3098 3098 msgstr "" … … 3110 3110 msgstr "" 3111 3111 3112 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:1 33113 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php: 193114 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:2 03112 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:15 3113 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:21 3114 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:22 3115 3115 msgid "New customer requires approval" 3116 3116 msgstr "" 3117 3117 3118 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:1 63118 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:18 3119 3119 msgid "" 3120 3120 "This email is sent to admin when a new customer registers and requires " … … 3122 3122 msgstr "" 3123 3123 3124 #: includes/emails/class-b2bking-new-message-email.php:1 33124 #: includes/emails/class-b2bking-new-message-email.php:15 3125 3125 msgid "New message (B2BKing Premium)" 3126 3126 msgstr "" 3127 3127 3128 #: includes/emails/class-b2bking-new-message-email.php:1 63128 #: includes/emails/class-b2bking-new-message-email.php:18 3129 3129 msgid "" 3130 3130 "This email is sent when a new message (quote request, or user inquiry, or " … … 3132 3132 msgstr "" 3133 3133 3134 #: includes/emails/class-b2bking-new-message-email.php: 193135 #: includes/emails/class-b2bking-new-message-email.php:2 03134 #: includes/emails/class-b2bking-new-message-email.php:21 3135 #: includes/emails/class-b2bking-new-message-email.php:22 3136 3136 msgid "New message (conversations)" 3137 3137 msgstr "" 3138 3138 3139 #: includes/emails/class-b2bking-your-account-approved-email.php:1 33139 #: includes/emails/class-b2bking-your-account-approved-email.php:16 3140 3140 msgid "Account approved" 3141 3141 msgstr "" 3142 3142 3143 #: includes/emails/class-b2bking-your-account-approved-email.php: 183143 #: includes/emails/class-b2bking-your-account-approved-email.php:21 3144 3144 msgid "" 3145 3145 "This email notifies the customer when their account has been manually " … … 3147 3147 msgstr "" 3148 3148 3149 #: includes/emails/class-b2bking-your-account-approved-email.php:2 13150 #: includes/emails/class-b2bking-your-account-approved-email.php:2 23149 #: includes/emails/class-b2bking-your-account-approved-email.php:24 3150 #: includes/emails/class-b2bking-your-account-approved-email.php:25 3151 3151 msgid "Your account has been approved" 3152 3152 msgstr "" -
b2bking-wholesale-for-woocommerce/trunk/readme.txt
r3367328 r3372523 9 9 Tested up to: 6.8 10 10 Requires PHP: 5.6.20 11 Stable tag: 4.9. 2012 Version: 4.9. 2011 Stable tag: 4.9.30 12 Version: 4.9.30 13 13 License: GPLv2 or later 14 14 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 381 381 382 382 Yes! B2BKing can not only hide price, but it can also hide products entirely using the plugin's visibility module. This can be configured for specific products, categories, users or user groups. More info [here](https://woocommerce-b2b-plugin.com/docs/faq-product-visibility-is-not-working-how-to-set-up-product-visibility/ "here") 383 384 = How can I report security bugs? = 385 386 You can report security bugs through the Patchstack Vulnerability Disclosure Program. The Patchstack team helps validate, triage and handle any security vulnerabilities. [Report a security vulnerability.](https://patchstack.com/database/vdp/9e5fb5c8-597a-4c1a-b7be-6766c7894710)
Note: See TracChangeset
for help on using the changeset viewer.