VendorVerse requires WooCommerce to be active.

'; } } public function plugin_links( $links ) { $links[] = '' . __( 'Settings', 'vendorverse' ) . ''; $links[] = 'Hire Developer'; return $links; } public function page_fraud() { global $wpdb; $alerts = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}vv_fraud_alerts ORDER BY created_at DESC LIMIT 100" ); // Mark as resolved if ( isset( $_POST['vv_resolve_alert'], $_POST['vv_nonce'] ) && wp_verify_nonce( sanitize_text_field( $_POST['vv_nonce'] ), 'vv_resolve_alert' ) ) { $wpdb->update( "{$wpdb->prefix}vv_fraud_alerts", [ 'is_resolved' => 1 ], [ 'id' => (int) $_POST['alert_id'] ] ); echo '

' . esc_html__( 'Alert resolved.', 'vendorverse' ) . '

'; $alerts = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}vv_fraud_alerts ORDER BY created_at DESC LIMIT 100" ); } echo '

' . esc_html__( 'Fraud Alerts', 'vendorverse' ) . '

'; echo ''; foreach ( $alerts as $a ) { $badge = $a->severity === 'high' ? 'error' : ( $a->severity === 'medium' ? 'warning' : 'info' ); echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
IDTypeSeverityDetailsDateAction
' . esc_html( $a->id ) . '' . esc_html( $a->alert_type ) . '' . esc_html( $a->severity ) . '' . esc_html( $a->details ) . '' . esc_html( $a->created_at ) . ''; if ( ! $a->is_resolved ) { echo '
'; wp_nonce_field( 'vv_resolve_alert', 'vv_nonce' ); echo ''; echo ''; echo '
'; } else { echo '✓ Resolved'; } echo '
'; } public function page_plans() { global $wpdb; if ( isset( $_POST['vv_save_plan'], $_POST['vv_nonce'] ) && wp_verify_nonce( sanitize_text_field( $_POST['vv_nonce'] ), 'vv_save_plan' ) ) { $data = [ 'name' => sanitize_text_field( $_POST['plan_name'] ), 'price' => (float) $_POST['plan_price'], 'duration_days' => (int) $_POST['plan_duration'], 'max_products' => (int) $_POST['plan_max_products'], 'commission_rate' => (float) $_POST['plan_commission'], 'featured_listing' => isset( $_POST['plan_featured'] ) ? 1 : 0, 'priority_support' => isset( $_POST['plan_priority'] ) ? 1 : 0, ]; if ( ! empty( $_POST['plan_id'] ) ) { $wpdb->update( "{$wpdb->prefix}vv_vendor_plans", $data, [ 'id' => (int) $_POST['plan_id'] ] ); } else { $wpdb->insert( "{$wpdb->prefix}vv_vendor_plans", $data ); } } $plans = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}vv_vendor_plans ORDER BY price ASC" ); echo '

' . esc_html__( 'Vendor Subscription Plans', 'vendorverse' ) . '

'; echo ''; foreach ( $plans as $p ) { echo ''; } echo '
NamePrice/MoMax ProductsCommission %FeaturedPriority
' . esc_html( $p->name ) . '' . wc_price( $p->price ) . '' . esc_html( $p->max_products ) . '' . esc_html( $p->commission_rate ) . '%' . ( $p->featured_listing ? '✓' : '–' ) . '' . ( $p->priority_support ? '✓' : '–' ) . '
'; echo '

' . esc_html__( 'Add / Edit Plan', 'vendorverse' ) . '

'; echo '
'; wp_nonce_field( 'vv_save_plan', 'vv_nonce' ); $fields = [ 'plan_name' => [ 'Plan Name', 'text' ], 'plan_price' => [ 'Monthly Price ($)', 'number' ], 'plan_duration' => [ 'Duration (days)', 'number' ], 'plan_max_products'=> [ 'Max Products', 'number' ], 'plan_commission' => [ 'Commission Rate (%)', 'number' ], ]; foreach ( $fields as $n => $f ) { echo ''; } echo ''; echo ''; echo '
' . esc_html( $f[0] ) . '
Featured Listing
Priority Support
'; submit_button( 'Save Plan', 'primary', 'vv_save_plan' ); echo '
'; } }