--- a/wc-frontend-manager/controllers/messages/wcfm-controller-messages.php
+++ b/wc-frontend-manager/controllers/messages/wcfm-controller-messages.php
@@ -233,11 +233,26 @@
}
if( $message_status != 'unread' ) { $actions = ''; }
- if( !wcfm_is_vendor() && ( $message_status == 'unread' ) && ( in_array( $wcfm_message->message_type, array( 'verification', 'vendor_approval', 'affiliate_approval' ) ) ) ) {
-
- } else {
+
+ $resource_owner_id = $wcfm_message->author_id;
+ if($wcfm_message->message_to > 0) {
+ $resource_owner_id = $wcfm_message->message_to;
+ }
+ if($resource_owner_id < 0) $resource_owner_id = 0;
+
+ $is_allowed = wcfm_user_can_perform_request(
+ (int) $resource_owner_id,
+ 'message_delete'
+ );
+ if( $is_allowed ) {
$actions .= '<a class="wcfm_messages_delete wcfm-action-icon" href="#" data-messageid="' . $wcfm_message->ID . '"><span class="wcfmfa fa-trash-alt text_tip" data-tip="' . esc_attr__( 'Delete', 'wc-frontend-manager' ) . '"></span></a>';
}
+
+ // if( !wcfm_is_vendor() && ( $message_status == 'unread' ) && ( in_array( $wcfm_message->message_type, array( 'verification', 'vendor_approval', 'affiliate_approval' ) ) ) ) {
+
+ // } else {
+ // $actions .= '<a class="wcfm_messages_delete wcfm-action-icon" href="#" data-messageid="' . $wcfm_message->ID . '"><span class="wcfmfa fa-trash-alt text_tip" data-tip="' . esc_attr__( 'Delete', 'wc-frontend-manager' ) . '"></span></a>';
+ // }
/*if( $wcfm_is_allow_pdf_invoice = apply_filters( 'wcfm_is_allow_pdf_invoice', true ) ) {
if( WCFM_Dependencies::wcfmu_plugin_active_check() && WCFM_Dependencies::wcfm_wc_pdf_invoices_packing_slips_plugin_active_check() ) {
--- a/wc-frontend-manager/controllers/settings/wcfm-controller-settings.php
+++ b/wc-frontend-manager/controllers/settings/wcfm-controller-settings.php
@@ -150,6 +150,8 @@
if( isset( $wcfm_settings_form['wcfm_page_options'] ) ) {
$wcfm_page_options = get_option("wcfm_page_options", array());
$wcfm_page_options = array_merge( $wcfm_page_options, $wcfm_settings_form['wcfm_page_options'] );
+ $wcfm_allowed_page_keys = apply_filters( 'wcfm_allowed_page_keys', array('wc_frontend_manager_page_id', 'wcfm_vendor_membership_page_id', 'wcfm_vendor_registration_page_id', 'wcfm_affiliate_registration_page_id') );
+ $wcfm_page_options = array_intersect_key( $wcfm_page_options, array_flip( $wcfm_allowed_page_keys ) );
foreach( $wcfm_page_options as $wcfm_page_option_key => $wcfm_page_option_val ) {
update_option( $wcfm_page_option_key, $wcfm_page_option_val );
}
--- a/wc-frontend-manager/core/class-wcfm-ajax.php
+++ b/wc-frontend-manager/core/class-wcfm-ajax.php
@@ -296,6 +296,10 @@
elseif( $WCFM->is_marketplace == 'dokan' ) new WCFM_Settings_Dokan_Controller();
elseif( $WCFM->is_marketplace == 'wcfmmarketplace' ) new WCFM_Settings_Marketplace_Controller();
} else {
+ if(!current_user_can( apply_filters( 'wcfm_setup_page_required_capability', 'access_wcfm_site_setup' ) ) && !( function_exists('wcfm_is_manager') && wcfm_is_manager() && function_exists('wcfm_is_group_manager') && ! wcfm_is_group_manager() )) {
+ wp_send_json_error( esc_html__( 'You don’t have permission to do this.', 'woocommerce' ) );
+ wp_die();
+ }
include_once( $this->controllers_path . 'settings/wcfm-controller-settings.php' );
new WCFM_Settings_Controller();
}
--- a/wc-frontend-manager/core/class-wcfm-notification.php
+++ b/wc-frontend-manager/core/class-wcfm-notification.php
@@ -1070,8 +1070,45 @@
wp_send_json_error( esc_html__( 'You don’t have permission to do this.', 'woocommerce' ) );
wp_die();
}
+
+ if( (!apply_filters( 'wcfm_is_pref_notification', true ) || !apply_filters( 'wcfm_is_allow_notifications', true ) ) && ( !apply_filters( 'wcfm_is_allow_direct_message', true ) || !apply_filters( 'wcfm_is_pref_direct_message', true ) ) ) {
+ wp_send_json_error( esc_html__( 'You don’t have permission to do this.', 'woocommerce' ) );
+ wp_die();
+ }
- $messageid = absint( $_POST['messageid'] );
+ $messageid = isset( $_POST['messageid'] ) ? absint( $_POST['messageid'] ) : 0;
+
+ if ( !$messageid ) {
+ wp_send_json_error( esc_html__( 'You don’t have permission to do this.', 'woocommerce' ) );
+ wp_die();
+ }
+
+ $message_data = $wpdb->get_row( $wpdb->prepare(
+ "SELECT author_id, message_to, author_is_admin, author_is_vendor FROM {$wpdb->prefix}wcfm_messages WHERE ID = %d",
+ $messageid
+ ) );
+
+ if ( !$message_data ) {
+ wp_send_json_error( esc_html__( 'You don’t have permission to do this.', 'woocommerce' ) );
+ wp_die();
+ }
+
+ $resource_owner_id = $message_data->author_id;
+ if($message_data->message_to > 0) {
+ $resource_owner_id = $message_data->message_to;
+ }
+ if($resource_owner_id < 0) $resource_owner_id = 0;
+
+ $is_allowed = wcfm_user_can_perform_request(
+ (int) $resource_owner_id,
+ 'message_delete'
+ );
+
+ if ( ! $is_allowed ) {
+ wp_send_json_error( esc_html__( 'You don’t have permission to do this.', 'woocommerce' ) );
+ wp_die();
+ }
+
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}wcfm_messages WHERE `ID` = %d", $messageid ) );
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}wcfm_messages_modifier WHERE `message` = %d", $messageid ) );
--- a/wc-frontend-manager/helpers/wcfm-core-functions.php
+++ b/wc-frontend-manager/helpers/wcfm-core-functions.php
@@ -2391,4 +2391,33 @@
}
return $locale;
});*/
-?>
No newline at end of file
+if(!function_exists('wcfm_user_can_perform_request')) {
+ function wcfm_user_can_perform_request( $resource_vendor_id, $resource_type='', $resource_subtype='' ) {
+ $user_id = apply_filters('wcfm_current_vendor_id', get_current_user_id());
+ $has_capability = apply_filters( 'wcfm_current_user_can', true, $user_id, $resource_vendor_id, $resource_type, $resource_subtype );
+ if ( ! $has_capability ) {
+ return false;
+ }
+ if ( user_can( $user_id, 'administrator' ) ) {
+ return true;
+ }
+ if ( wcfm_is_vendor( $user_id ) && (int) $user_id === (int) $resource_vendor_id ) {
+ return true;
+ }
+ if ( function_exists('wcfm_is_manager') && wcfm_is_manager( $user_id ) ) {
+ if ( function_exists('wcfm_is_group_manager') && !wcfm_is_group_manager( $user_id ) ) {
+ return true;
+ }
+ if($resource_vendor_id) {
+ $group_list = array_filter((array) get_user_meta( $user_id, '_wcfm_vendor_group', true ));
+ foreach ( $group_list as $group_id ) {
+ $group_vendors = (array) get_post_meta( $group_id, '_group_vendors', true );
+ if ( in_array( $resource_vendor_id, $group_vendors ) ) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+}
No newline at end of file
--- a/wc-frontend-manager/wc_frontend_manager.php
+++ b/wc-frontend-manager/wc_frontend_manager.php
@@ -4,14 +4,14 @@
* Plugin URI: https://wclovers.com
* Description: WooCommerce is really Easy and Beautiful. We are here to make your life much more Easier and Peaceful.
* Author: WC Lovers
- * Version: 6.7.24
+ * Version: 6.7.25
* Author URI: https://wclovers.com
*
* Text Domain: wc-frontend-manager
* Domain Path: /lang/
*
* WC requires at least: 3.0.0
- * WC tested up to: 10.4
+ * WC tested up to: 10.5
*
*/
--- a/wc-frontend-manager/wc_frontend_manager_config.php
+++ b/wc-frontend-manager/wc_frontend_manager_config.php
@@ -4,7 +4,7 @@
define('WCFM_TEXT_DOMAIN', 'wc-frontend-manager');
-define('WCFM_VERSION', '6.7.24');
+define('WCFM_VERSION', '6.7.25');
define('WCFM_SERVER_URL', 'https://wclovers.com');