@@ -223,32 +223,64 @@ function ( $payment_method_id ) use ( $seller_id ) {
223223 }
224224
225225 /**
226- * Load Payment Content
226+ * Validate payment access and check active methods
227227 *
228- * @since 2.4
228+ * @since 4.2.9
229229 *
230- * @param string $slug_suffix
230+ * @param array $active_methods
231231 *
232- * @return void
232+ * @return bool Returns true if validation passes, false otherwise
233233 */
234- public function load_payment_content ( $ slug_suffix ) {
235- $ seller_id = dokan_get_current_user_id ();
236- $ data = $ this ->get_seller_payment_methods ( $ seller_id );
237- $ connected_methods = $ data ['connected_methods ' ];
238- $ disconnected_methods = $ data ['disconnected_methods ' ];
239- $ active_methods = $ data ['active_methods ' ];
234+ protected function validate_payment_access ( $ active_methods ) {
235+ // Check staff permissions
236+ if ( ! current_user_can ( 'dokan_view_store_payment_menu ' ) ) {
237+ dokan_get_template_part (
238+ 'global/dokan-error ' ,
239+ '' ,
240+ [
241+ 'deleted ' => false ,
242+ 'message ' => esc_html__ ( 'You have no permission to view this page ' , 'dokan-lite ' ),
243+ ]
244+ );
240245
241- //no payment method is active, show informative message
246+ return false ;
247+ }
248+
249+ // Check if payment methods are available
242250 if ( empty ( $ active_methods ) ) {
243251 dokan_get_template_part (
244252 'global/dokan-error ' ,
245253 '' ,
246254 [
247255 'deleted ' => false ,
248- 'message ' => __ ( 'No withdraw method is available. Please contact site admin. ' , 'dokan-lite ' ),
256+ 'message ' => esc_html__ ( 'No withdraw method is available. Please contact site admin. ' , 'dokan-lite ' ),
249257 ]
250258 );
251259
260+ return false ;
261+ }
262+
263+ return true ;
264+ }
265+
266+ /**
267+ * Load Payment Content
268+ *
269+ * @since 2.4
270+ *
271+ * @param string $slug_suffix
272+ *
273+ * @return void
274+ */
275+ public function load_payment_content ( $ slug_suffix ) {
276+ $ seller_id = dokan_get_current_user_id ();
277+ $ data = $ this ->get_seller_payment_methods ( $ seller_id );
278+ $ connected_methods = $ data ['connected_methods ' ];
279+ $ disconnected_methods = $ data ['disconnected_methods ' ];
280+ $ active_methods = $ data ['active_methods ' ];
281+
282+ // Check permissions and validate payment methods
283+ if ( ! $ this ->validate_payment_access ( $ active_methods ) ) {
252284 return ;
253285 }
254286
0 commit comments