HEX
Server: Apache/2.4.58 (IUS)
System: Linux fromcolo1.linveo.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: u100898694 (7904)
PHP: 8.1.29
Disabled: symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd,proc_get_status,proc_nice,proc_terminate,pclose,ini_alter,virtual,openlog,apache_child_terminate,apache_setenv,define_syslog_variables,highlight_file,ini_get_all,ini_restore,inject_code,openlog,posix_getpwuid,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,posix_setuid,posix_uname,syslog,system,show_source,pcntl_exec,virtual,suexec,dbmopen,dl,disk_free_space,diskfreespace,leak,apache_get_modules,apache_get_version,apache_note,apache_setenv,highlight_file
Upload Files
File: /home/u100898694/samak-danesh.com/wp-content/plugins/wordpress-seo/src/introductions/readme.md
# Introductions

Is for showing introductions to a user, on Yoast admin pages.
Based on plugin version, page, user capabilities and whether the user has seen it already.

- `Introduction_Interface` defines what data is needed
    - `id` as unique identifier
    - `plugin` and `version` to determine if the introduction is new (version > plugin version)
    - `pages` to be able to only show on certain Yoast admin pages
    - `capabilities` to be able to only show for certain users
- `Introductions_Collector` uses that data to determine whether an introduction should be "shown" to a user
    - uses the `wpseo_introductions` filter to be extendable from our other plugins
    - uses `Introductions_Seen_Repository` to get the data to determine if the user saw an introduction already
- `Introductions_Seen_Repository` is the doorway whether a user has seen an introduction or not
    - uses the `_yoast_introductions` user metadata
- `Introduction_Bucket` and `Introduction_Item` are used by the collector to get an array
- `Introductions_Integration` runs on the Yoast Admin pages and loads the assets
    - only loads on our Yoast admin pages, but never on our installation success pages as to not disturb onboarding
    - only loads assets if there is an introduction to show
        - `js/src/introductions` holds the JS
        - `wpseoIntroductions` is the localized script to transfer data from PHP to JS
        - `css/src/ai-generator.css` holds the CSS

Inside JS, register the modal content via `window.YoastSEO._registerIntroductionComponent`, which takes a
`id` and a `Component`. The id needs to be the same as the id in the `Introduction_Interface`.
The action `yoast.introductions.ready` can be used to know whether the registration function is available and ready for
use.