Admin
2 months ago
Cli
2 weeks ago
LlmsTxtGenerator
2 weeks ago
Mcp
11 months ago
Preview
1 year ago
Rest
10 months ago
Views
1 year ago
Activator.php
1 year ago
Bootstrap.php
9 months ago
Cli.php
9 months ago
ComingSoon.php
2 months ago
Deactivator.php
1 year ago
DefaultOptions.php
2 months ago
Errors.php
1 year ago
Helper.php
9 months ago
Hooks.php
2 months ago
Hostinger.php
2 months ago
I18n.php
1 year ago
LlmsTxtGenerator.php
1 year ago
Loader.php
1 year ago
Settings.php
1 year ago
Settings.php
75 lines
| 1 | <?php |
| 2 | |
| 3 | namespace Hostinger; |
| 4 | |
| 5 | defined( 'ABSPATH' ) || exit; |
| 6 | |
| 7 | class Settings { |
| 8 | public const MYSELF = 'myself'; |
| 9 | public const FREELANCER = 'freelancer'; |
| 10 | public const DEVELOPER = 'developer'; |
| 11 | public const OTHER = 'other'; |
| 12 | public const BUSINESS_BEGINNER_SEGMENT = 'business_beginner'; |
| 13 | public const LEARNER_SEGMENT = 'learner'; |
| 14 | public const BUSINESS_OWNER_SEGMENT = 'business_owner'; |
| 15 | public const WEBSITE_TYPE_BUSINESS = 'business'; |
| 16 | public const WEBSITE_TYPE_PORTFOLIO = 'portfolio'; |
| 17 | public const WEBSITE_TYPE_BLOG = 'blog'; |
| 18 | public const SITE_TITLE_OPTION = 'blogname'; |
| 19 | |
| 20 | public function __construct() { |
| 21 | if ( ! $this->get_setting( 'user_segment' ) ) { |
| 22 | $this->set_user_segment(); |
| 23 | } |
| 24 | } |
| 25 | |
| 26 | public function set_user_segment(): void { |
| 27 | $created_by = self::get_setting( 'survey.website.created_by' ); |
| 28 | $created_for = self::get_setting( 'survey.website.for' ); |
| 29 | $need_help = self::get_setting( 'survey.website.need_help' ); |
| 30 | $work_at = self::get_setting( 'survey.work_at' ); |
| 31 | |
| 32 | if ( $this->is_business_beginner( $created_by, $created_for, $need_help ) ) { |
| 33 | self::update_setting( 'user_segment', self::BUSINESS_BEGINNER_SEGMENT ); |
| 34 | } |
| 35 | |
| 36 | if ( $this->is_learner( $work_at, $need_help ) ) { |
| 37 | self::update_setting( 'user_segment', self::LEARNER_SEGMENT ); |
| 38 | } |
| 39 | |
| 40 | if ( $this->is_bussiness_owner( $created_for, $created_by ) ) { |
| 41 | self::update_setting( 'user_segment', self::BUSINESS_OWNER_SEGMENT ); |
| 42 | } |
| 43 | } |
| 44 | |
| 45 | private function is_business_beginner( string $created_by, string $created_for, bool $need_help ): bool { |
| 46 | return $created_by === self::MYSELF && $created_for === self::MYSELF && $need_help; |
| 47 | } |
| 48 | |
| 49 | private function is_learner( string $work_at, bool $need_help ): bool { |
| 50 | return $work_at === self::FREELANCER && $need_help; |
| 51 | } |
| 52 | |
| 53 | private function is_bussiness_owner( string $created_for, string $created_by ): bool { |
| 54 | return $created_for === self::MYSELF && ( $created_by === self::DEVELOPER || $created_by === self::OTHER ); |
| 55 | } |
| 56 | |
| 57 | public static function get_setting( string $setting ): string { |
| 58 | |
| 59 | if ( $setting ) { |
| 60 | return get_option( 'hostinger_' . $setting, '' ); |
| 61 | } |
| 62 | |
| 63 | return ''; |
| 64 | } |
| 65 | |
| 66 | public static function update_setting( string $setting, $value, $autoload = null ): void { |
| 67 | |
| 68 | if ( $setting ) { |
| 69 | update_option( 'hostinger_' . $setting, $value, $autoload ); |
| 70 | } |
| 71 | } |
| 72 | } |
| 73 | |
| 74 | new Settings(); |
| 75 |