' . esc_html( $text ) . ''; } return '' . esc_html( $text ) . ''; } public static function feature( string $title, string $description ): string { return '
' . esc_html( $description ) . '
' . esc_html( $messages[ $module ] ) . ' ' . esc_html__( 'Explore Abientot Pro', 'abientot' ) . '
'; } /** Source-backed edition comparison. This is information, not paid controls. */ public static function comparison(): void { $groups = array( array( __( 'Your business', 'abientot' ), array( array( __( 'Staff and employee access', 'abientot' ), __( 'One staff profile', 'abientot' ), __( 'Multiple staff and private employee schedules', 'abientot' ) ), array( __( 'Locations', 'abientot' ), __( 'One business location', 'abientot' ), __( 'Multiple locations with separate opening hours', 'abientot' ) ), array( __( 'Service options', 'abientot' ), __( 'Service details, categories, photos and pricing', 'abientot' ), __( 'Also adds variants, extras and conditional customer questions', 'abientot' ) ), ) ), array( __( 'Booking options', 'abientot' ), array( array( __( 'Recurring bookings', 'abientot' ), __( 'Not included', 'abientot' ), __( 'Repeating bookings and customer series', 'abientot' ) ), array( __( 'Group and party bookings', 'abientot' ), __( 'One customer per appointment', 'abientot' ), __( 'Capacity-managed sessions and multiple attendees', 'abientot' ) ), array( __( 'Waitlist', 'abientot' ), __( 'Not included', 'abientot' ), __( 'Customer signup and invitations for available times', 'abientot' ) ), array( __( 'Rooms and equipment', 'abientot' ), __( 'Not included', 'abientot' ), __( 'Shared resources with capacity checks', 'abientot' ) ), array( __( 'Packages and credits', 'abientot' ), __( 'Not included', 'abientot' ), __( 'Booking packages and session credits', 'abientot' ) ), array( __( 'Customer booking links', 'abientot' ), __( 'Contact the business to cancel or reschedule', 'abientot' ), __( 'Private cancellation and rescheduling links', 'abientot' ) ), ) ), array( __( 'Payments and messages', 'abientot' ), array( array( __( 'Customer payments', 'abientot' ), __( 'Pay on site and manual payment records', 'abientot' ), __( 'Also adds Stripe payments, deposits, balances and refunds', 'abientot' ) ), array( __( 'Email notifications', 'abientot' ), __( 'Confirmation and update emails, plus one optional reminder before each appointment', 'abientot' ), __( 'Also adds notification delivery activity', 'abientot' ) ), array( __( 'Preparation and follow-up', 'abientot' ), __( 'Not included', 'abientot' ), __( 'Service-specific instructions and consent-based follow-up', 'abientot' ) ), array( __( 'SMS notifications', 'abientot' ), __( 'Not included', 'abientot' ), __( 'Configured provider and customer opt-in', 'abientot' ) ), ) ), array( __( 'Connections and tools', 'abientot' ), array( array( __( 'External calendars', 'abientot' ), __( 'Calendar file download after booking', 'abientot' ), __( 'Also adds private feeds and Google busy-time protection', 'abientot' ) ), array( __( 'Data tools', 'abientot' ), __( 'CSV exports, settings backup and supported Free-plugin contact imports', 'abientot' ), __( 'Also adds manual customer, service and appointment CSV imports', 'abientot' ) ), ) ), ); ?>