0 && (bool) get_post_meta( $post_id, Meta_Keys::PAGE_STYLE_LOCKED, true ) ) { return; } if ( $post_id > 0 ) { $page_style = sanitize_title( (string) get_post_meta( $post_id, Meta_Keys::PAGE_STYLE_SLUG, true ) ); if ( '' !== $page_style && Style_Resolver::is_theme_variation_slug( $page_style ) ) { return; } } $existing = Style_Resolver::read_cookie_style(); if ( '' !== $existing && Style_Resolver::is_allowed_slug( $existing ) ) { return; } $result = Ab_Testing::assign_cohort(); if ( null === $result ) { return; } self::persist_assignment( $result ); /** * Fires after a visitor is assigned to an A/B cohort. * * @param array{cohort: string, slug: string} $result Assignment. * @param array $config A/B settings. */ do_action( 'forwp_style_switcher_ab_assigned', $result, Ab_Testing::get_config() ); } /** * @param array{cohort: string, slug: string} $result Assignment. */ private static function persist_assignment( array $result ): void { $slug = sanitize_title( (string) $result['slug'] ); if ( '' === $slug ) { return; } $days = Settings::instance()->get_visitor_storage_days(); setcookie( Style_Resolver::VISITOR_COOKIE, $slug, time() + ( $days * DAY_IN_SECONDS ), COOKIEPATH ? COOKIEPATH : '/', COOKIE_DOMAIN, is_ssl(), false ); $_COOKIE[ Style_Resolver::VISITOR_COOKIE ] = $slug; Ab_Stats_Table::record_assignment( (string) $result['cohort'] ); } }