WordPress Hook-ları İndeksi
Developerlərin əslində istifadə etdiyi WordPress action və filter-lərinin axtarıla bilən indeksi — dəqiq add_action/add_filter imzası, nə vaxt işə düşdüyü, işlək bir nümunə və insanları çaşdıran məqamla birlikdə.
39 hook — hər biri üçün dəqiq add_action / add_filter imzası, nə vaxt işə düşdüyü, işlək bir nümunə və insanları çaşdıran məqam ilə birlikdə. 1 ədədi təsdiqlənməmiş kimi işarələnib — onların arqument sayını WordPress mənbəyi ilə tutuşdurmamışıq və təxmini fakt kimi təqdim etməkdənsə, bunu qeyd etməyi üstün tuturuq.
Bu, tam siyahı deyil və olduğunu da iddia etmir — WordPress-in minlərlə hook-u var. Burada insanların həqiqətən istifadə etdikləri toplanıb.
WordPress yüklənməni bitirdikdən sonra, lakin heç bir başlıq göndərilmədən əvvəl işə düşür. Xüsusi yazı növlərini, taksonomiyaları və yönləndirmə qaydalarını qeyd etmək üçün standart yer.
İşə düşür
Hər sorğuda — həm ön tərəfdə, həm də admin paneldə — nüvə, plaginlər və mövzu yükləndikdən sonra.
İmza
add_action( 'init', 'my_callback' );Nümunə
add_action( 'init', function () {
register_post_type( 'book', array(
'public' => true,
'label' => 'Books',
'show_in_rest' => true, // required for the block editor
) );
} );Tələ
init HƏR sorğuda işə düşür, o cümlədən AJAX, REST və cron. Burada yavaş bir şey etmək (HTTP sorğusu, ağır sorğu) hər səhifə yüklənməsini ağırlaşdırır. Həmçinin: cari istifadəçi burada mövcuddur, amma heç nə çıxara bilməzsiniz — başlıqlar hələ göndərilməyib, lakin göndərilmək üzrədir.
Mövzu yükləndikdən sonra bir dəfə işə düşür. add_theme_support(), add_image_size() üçün və naviqasiya menyularını qeyd etmək üçün doğru yer.
İşə düşür
Mövzunun functions.php faylı yükləndikdən sonra, init-dən ƏVVƏL.
İmza
add_action( 'after_setup_theme', 'my_callback' );Nümunə
add_action( 'after_setup_theme', function () {
add_theme_support( 'post-thumbnails' );
add_theme_support( 'title-tag' );
add_image_size( 'card', 600, 400, true ); // true = hard crop
} );Tələ
Şəkil ölçülərini burada deyil, init-də qeyd etmək əksər hallarda təsadüfən işləyir və sonra bəzilərində sirli şəkildə uğursuz olur. after_setup_theme istifadə edin — o, məhz bunun üçündür.
Bütün aktiv plaginlər yükləndikdən sonra bir dəfə işə düşür. Başqa bir plaginlə qarşılıqlı əlaqə qurmaq üçün ən erkən təhlükəsiz nöqtə.
İşə düşür
Hər plagin faylı daxil edildikdən sonra, mövzu yüklənmədən əvvəl.
İmza
add_action( 'plugins_loaded', 'my_callback' );Tələ
Cari istifadəçi burada HƏLƏ mövcud deyil — wp_get_current_user() etibarlı işləməyəcək. İstifadəçi lazımdırsa, init istifadə edin.
WordPress tam yükləndikdən sonra işə düşür — plaginlər, mövzu, init və istifadəçi hamısı hazırdır.
İşə düşür
init-dən sonra və cari istifadəçi qurulduqdan sonra.
İmza
add_action( 'wp_loaded', 'my_callback' );Hər admin sorğusunun əvvəlində işə düşür. register_setting(), icazə yoxlamaları və admin yönləndirmələri üçün istifadə olunur.
İşə düşür
Hər admin tərəfi sorğusunda.
İmza
add_action( 'admin_init', 'my_callback' );Tələ
O həmçinin əslində "admin ekranları" olmayan admin-ajax.php sorğularında da işə düşür. Callback-iniz ekranın mövcud olduğunu güman edirsə, onu wp_doing_ajax() ilə qoruyun.
Ön tərəf CSS və JavaScript-i növbəyə əlavə etmək üçün yeganə doğru yer.
İşə düşür
Ön tərəf səhifə yüklənmələrində, head göstərilmədən əvvəl.
İmza
add_action( 'wp_enqueue_scripts', 'my_callback' );Nümunə
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style(
'child-style',
get_stylesheet_uri(),
array( 'parent-style' ), // load AFTER the parent
wp_get_theme()->get( 'Version' ) // cache-bust on version change
);
} );Tələ
Adına baxmayaraq, o skriptlərlə yanaşı ÜSLUBLARI da idarə edir — wp_enqueue_styles adlı hook yoxdur və insanlar onu axtararaq həqiqətən vaxt itirirlər. Həmçinin: bu, admin paneldə (admin_enqueue_scripts istifadə edin) və ya blok redaktorunda (enqueue_block_editor_assets istifadə edin) işə düşmür.
Admin paneldə CSS/JS-i növbəyə əlavə edin. Cari ekranın hook suffiksini alır ki, resursları yalnız bir ekranda yükləyə biləsiniz.
İşə düşür
Admin səhifə yüklənmələrində.
İmza
add_action( 'admin_enqueue_scripts', 'my_callback' ); // receives $hook_suffixNümunə
add_action( 'admin_enqueue_scripts', function ( $hook ) {
if ( 'settings_page_my-plugin' !== $hook ) {
return; // do not load our JS on every admin screen
}
wp_enqueue_script( 'my-admin', plugins_url( 'admin.js', __FILE__ ), array(), '1.0', true );
} );Tələ
$hook üzərində yoxlama qoymamaq plaginin əlaqəsiz admin ekranlarını sındırmasının ən çox rast gəlinən səbəbidir. Resurslarınızı yalnız lazım olan yerdə yükləyin, başqa heç yerdə yox.
Resursları yalnız blok redaktoruna (Gutenberg) növbəyə əlavə edin — ön tərəfə yox, admin panelin qalan hissəsinə yox.
İşə düşür
Blok redaktoru yükləndikdə.
İmza
add_action( 'enqueue_block_editor_assets', 'my_callback' );<head> daxilinə çıxış yazır. Meta teqlər və sətiriçi kritik CSS üçün istifadə olunur.
İşə düşür
Ön tərəfdə, <head> daxilində.
İmza
add_action( 'wp_head', 'my_callback' );Tələ
Skriptləri və ya üslubları burada növbəyə əlavə ETMƏYİN — WordPress-in asılılıqları və təkrarların aradan qaldırılmasını idarə etməsinə imkan verən wp_enqueue_scripts istifadə edin. wp_head-ə <script> teqi çıxarmaq bütün bunları keçib gedir və bu qədər saytın jQuery-ni üç dəfə yükləməsinin səbəbi budur.
</body>-dən dərhal əvvəl çıxış yazır. Analitika kod parçaları və təxirə salınmış işarələmə üçün doğru yer.
İşə düşür
Ön tərəf səhifəsinin sonunda.
İmza
add_action( 'wp_footer', 'my_callback' );Tələ
wp_footer() çağırmağı unudan mövzu admin panelini (admin bar) sındırır, altbilgi skriptini növbəyə əlavə edən istənilən plagini sındırır və wordpress.org mövzu yoxlamasında avtomatik rədd olunur.
Yazı məzmununu göstərilmədən dərhal əvvəl filtrləyir. Yazının sonuna və ya əvvəlinə işarələmə əlavə etmək üçün adi yer.
İşə düşür
the_content() hər çağırıldıqda.
İmza
add_filter( 'the_content', 'my_callback' ); // receives $contentNümunə
add_filter( 'the_content', function ( $content ) {
if ( ! is_singular( 'post' ) || ! in_the_loop() || ! is_main_query() ) {
return $content; // <- the guard everyone forgets
}
return $content . '<p class="cta">Enjoyed this? Read more.</p>';
} );Tələ
Bu, düşündüyünüzdən qat-qat tez-tez işə düşür — vidjetlərdə, REST cavablarında, bəzi plaginlərin çıxarış yaratmasında və arxivdəki döngədə hər yazı üçün bir dəfə. is_singular / in_the_loop / is_main_query yoxlaması olmadan CTA-nız blog indeksində və RSS lentinin içində on beş dəfə görünür. Bu, WordPress-də ən çox səhv istifadə edilən filter-dir.
Yazı başlığını göstərilmədən əvvəl filtrləyir.
İşə düşür
the_title() və ya get_the_title() hər çağırıldıqda.
İmza
add_filter( 'the_title', 'my_callback', 10, 2 ); // receives $title, $post_idTələ
O həmçinin admin menyusundakı, naviqasiya menyularındakı və sənədin <title>-ındakı başlıqlar üçün də işə düşür. Onu şərtsiz filtrləmək nəzərdə tutmadığınız yerlərdə adları dəyişəcək.
Avtomatik yaradılan çıxarışın neçə SÖZ ehtiva etdiyini təyin edir. Standart olaraq 55-dir.
İşə düşür
WordPress əl ilə çıxarışı olmayan yazı üçün çıxarış yaratdıqda.
İmza
add_filter( 'excerpt_length', 'my_callback' ); // receives $length (words)Nümunə
add_filter( 'excerpt_length', function ( $length ) {
return 25;
}, 999 ); // high priority: many themes set this too, and last one winsTələ
ƏL ilə çıxarışı olan yazılara təsir etmir — onlar olduğu kimi istifadə olunur. Həmçinin bir çox mövzu bu filter-i özləri təyin edir, ona görə də tez-tez qalib gəlmək üçün yüksək prioritet nömrəsi lazım olur.
Kəsilmiş çıxarışın sonuna əlavə olunan mətni dəyişir. Standart olaraq " […]"-dır.
İşə düşür
Avtomatik yaradılan çıxarış kəsildikdə.
İmza
add_filter( 'excerpt_more', 'my_callback' ); // receives $moreSorğunu işə düşməzdən ƏVVƏL dəyişir. Arxivdə nəyin görünəcəyini dəyişmək üçün doğru yol — ikinci bir WP_Query-dən qat-qat yaxşıdır.
İşə düşür
Sorğu dəyişənləri təhlil edildikdən sonra, SQL qurulmazdan əvvəl.
İmza
add_action( 'pre_get_posts', 'my_callback' ); // receives WP_Query $query (by reference)Nümunə
add_action( 'pre_get_posts', function ( $query ) {
if ( is_admin() || ! $query->is_main_query() ) {
return; // <- both guards are mandatory
}
if ( $query->is_category() ) {
$query->set( 'posts_per_page', 12 );
}
} );Tələ
O ADMIN paneldə də işə düşür və menyular, vidjetlər və media kitabxanası daxil olmaqla HƏR sorğu üçün işə düşür. is_admin() və is_main_query() yoxlamalarını buraxsanız, admin yazı siyahısının göstərdiyini səssizcə dəyişəcəksiniz — mənbəyini tapmaq həqiqətən çətin olan bir səhv. Həmçinin qeyd edin: $query-ni dəyişin, heç nə qaytarmayın.
Sorğunun xam SQL WHERE bəndini filtrləyir.
İşə düşür
Sorğu SQL-i qurularkən.
İmza
add_filter( 'posts_where', 'my_callback', 10, 2 ); // receives $where, WP_Query $queryTələ
Siz xam SQL yazırsınız. Həmişə $query->is_main_query() ilə qoruyun və istənilən istifadəçi girişi üçün həmişə $wpdb->prepare() istifadə edin. Bu, WordPress saytına SQL injection daxil etməyin ən sürətli yoludur.
Sorğunun tapdığı yazıların ümumi sayını filtrləyir — səhifələmə buna əsasən hesablanır.
İşə düşür
Sorğu işə düşdükdən sonra, səhifələmə hesablanmazdan əvvəl.
İmza
add_filter( 'found_posts', 'my_callback', 10, 2 ); // receives $found_posts, WP_Query $queryWordPress-in yüklənəni kiçildib orijinalınız əvəzinə "-scaled" nüsxəsini verdiyi piksel ölçüsünü təyin edir. Standart olaraq 2560.
İşə düşür
Yükləmə zamanı, WordPress şəklin "böyük" olub-olmadığını qərara aldıqda.
İmza
add_filter( 'big_image_size_threshold', 'my_callback' ); // receives int $thresholdNümunə
// Serve originals at full resolution — no -scaled copy.
add_filter( 'big_image_size_threshold', '__return_false' );
// Or just raise the ceiling:
add_filter( 'big_image_size_threshold', function () {
return 3840;
} );Tələ
Bu, "şəklim WordPress-ə yüklədikdən sonra bulanıq görünür" probleminin ən çox rast gəlinən səbəbidir və demək olar ki, heç kim onun mövcudluğundan xəbərsizdir. Orijinalınız hələ də diskdədir — sadəcə heç vaxt verilmir. Nəzərə alın ki, o, ƏN UZUN kənara tətbiq olunur və yalnız filter aktiv olduqdan sonra yüklənən şəkillərə təsir edir.
WordPress-in yükləmə üçün yaratmaq üzrə olduğu şəkil ölçüləri massivini filtrləyir. Bir ölçünün yaradılmasını dayandırmaq üçün onu massivdən silin (unset).
İşə düşür
Yükləmə zamanı, törəmə fayllar yaradılmazdan əvvəl.
İmza
add_filter( 'intermediate_image_sizes_advanced', 'my_callback', 10, 2 ); // receives $sizes, $metadataNümunə
add_filter( 'intermediate_image_sizes_advanced', function ( $sizes ) {
unset( $sizes['1536x1536'] );
unset( $sizes['2048x2048'] );
return $sizes;
} );Tələ
Mövzunuzun əslində İSTİFADƏ etdiyi bir ölçünü silmək WordPress-in tam ölçülü orijinala keçməsi deməkdir — bu isə qənaət etdiyiniz disk sahəsindən daha pisdir. Həmçinin bu, yalnız YENİ faylların yaradılmasını dayandırır; mövcud olanlar siz yenidən yaradana qədər qalır.
WordPress-in yüklənən şəkilləri yenidən kodladığı JPEG keyfiyyətini təyin edir. Standart olaraq 82.
İşə düşür
WordPress JPEG yazdığı hər zaman.
İmza
add_filter( 'jpeg_quality', 'my_callback', 10, 2 ); // receives $quality, $contextTələ
82 keyfiyyəti fotoşəkillər üçün yaxşıdır, lakin ekran görüntüləri, loqolar və düz qrafikalar üçün gözlə görünəcək dərəcədə pisdir — onların sərt kənarları var və artefaktları gizlədəcək fotoqrafik küy yoxdur. Həmçinin: wp_editor_set_quality daha müasir filter-dir və birbaşa şəkil redaktoru siniflərini əhatə edir; hər ikisini təyin etmək adi haldır.
WP_Image_Editor sinifləri (GD və Imagick) tərəfindən istifadə olunan çıxış keyfiyyətini təyin edir.
İşə düşür
Şəkil redaktoru nümunəsi öz keyfiyyətini təyin etdikdə.
İmza
add_filter( 'wp_editor_set_quality', 'my_callback', 10, 2 ); // receives $quality, $mime_typeXüsusi şəkil ölçülərinizi media modalında və blok redaktorunda ölçü açılan siyahısına əlavə edir.
İşə düşür
Media interfeysi öz ölçü seçicisini qurduqda.
İmza
add_filter( 'image_size_names_choose', 'my_callback' ); // receives $sizesNümunə
add_filter( 'image_size_names_choose', function ( $sizes ) {
return array_merge( $sizes, array( 'card' => __( 'Card', 'textdomain' ) ) );
} );Tələ
add_image_size() ölçünü qeyd edir, lakin onu redaktorda seçilə bilən ETMİR. Hər "xüsusi şəkil ölçüm açılan siyahıda görünmür" sualı bu filter-in olmamasıdır.
Faylı yükləmələr qovluğuna köçürülməzdən ƏVVƏL yoxlayır və ya rədd edir.
İşə düşür
Yükləmə zamanı, fayl yazılmazdan əvvəl.
İmza
add_filter( 'wp_handle_upload_prefilter', 'my_callback' ); // receives $fileTələ
Faylı rədd etmək üçün $file['error']-i mesaj sətrinə təyin edin və $file qaytarın. false qaytarmaq və ya istisna atmaq istədiyinizi etməyəcək.
Qoşma emal edildikdən sonra metadata massivini (yaradılmış ölçülər daxil olmaqla) filtrləyir.
İşə düşür
Yükləmə zamanı törəmə şəkillər yaradıldıqdan sonra.
İmza
add_filter( 'wp_generate_attachment_metadata', 'my_callback', 10, 2 ); // receives $metadata, $attachment_idTələ
Bu, şəkil optimallaşdırma plaginlərinin istifadə etdiyi hook-dur. O, yavaş ola bilər — hər şəkil ölçüsü yazıldıqdan sonra işə düşür və burada HTTP sorğusu etmək hər yükləməni ona gözlədir.
WordPress-in adaptiv şəkil üçün yaratdığı srcset namizədlərini filtrləyir.
İşə düşür
Adaptiv şəkil göstərildikdə.
İmza
add_filter( 'wp_calculate_image_srcset', 'my_callback', 10, 5 );Tələ
medium_large (768w) ölçüsünü başqa yerdə silmək srcset-i səssizcə zəiflədir — o ölçü demək olar ki, tamamilə bunun üçün mövcuddur.
Bu hook-un dəqiq arqument sayını WordPress mənbəyi ilə təsdiqləməmişik. Ona güvənməzdən əvvəl developer.wordpress.org saytını yoxlayın. Təxmini səssizcə fakt kimi təqdim etməkdənsə, qeyri-müəyyənliyi qeyd etməyi üstün tuturuq.
Admin menyusu və alt menyu səhifələrini qeyd edir.
İşə düşür
Admin menyusu qurularkən.
İmza
add_action( 'admin_menu', 'my_callback' );Nümunə
add_action( 'admin_menu', function () {
add_options_page(
'My Plugin',
'My Plugin',
'manage_options', // capability — NOT a role
'my-plugin',
'my_render_settings_page'
);
} );Tələ
capability arqumenti ROL deyil, İMKANDIR (capability). "administrator" ötürmək işləyirmiş kimi görünür (çünki bəzi qurulmalarda adminlərin bu adda bir imkanı var) və sonra səssizcə yanlış adamlara giriş verir. manage_options istifadə edin.
Admin ekranının yuxarısında bildiriş yazır.
İşə düşür
Admin səhifəsi göstərildikdə.
İmza
add_action( 'admin_notices', 'my_callback' );Tələ
O HƏR admin ekranında işə düşür. Hamısında şərtsiz "quraşdırdığınız üçün təşəkkür!" bildirişi göstərən plagin WordPress admin panelində ən çox nifrət edilən nümunədir. Onu qoruyun və bağlana bilən edin.
Yazı yaradıldıqda və ya yeniləndikdə işə düşür. Meta qutu məlumatlarını yadda saxlamaq üçün adi yer.
İşə düşür
Yazı verilənlər bazasına yazıldıqdan sonra.
İmza
add_action( 'save_post', 'my_callback', 10, 3 ); // receives $post_id, $post, $updateNümunə
add_action( 'save_post', function ( $post_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( wp_is_post_revision( $post_id ) ) return;
if ( ! current_user_can( 'edit_post', $post_id ) ) return;
// ... now it is safe to save
}, 10, 1 );Tələ
O, real yadda saxlamalarla yanaşı, AVTOMATİK YADDA SAXLAMALARDA və REVİZİYALARDA da işə düşür. Yuxarıdakı üç yoxlama olmadan, redaktor hər avtomatik yadda saxladıqda meta-nız boş dəyərlərlə üzərinə yazılır — məlumatların təsadüfən yox olması kimi görünən bir səhv.
Yazı redaktə ekranında meta qutuları qeyd edir.
İşə düşür
Redaktə ekranı qurulduqda.
İmza
add_action( 'add_meta_boxes', 'my_callback', 10, 2 ); // receives $post_type, $postTələ
Klassik meta qutuları blok redaktoru uyğunluq rejiminə keçmədikcə orada görünmür. Blok redaktoru üçün doğma sayt üçün, əvəzində post meta-nı show_in_rest ilə qeyd edin və yan panel qurun.
İstifadəçi uğurla daxil olduqdan sonra işə düşür.
İşə düşür
Uğurlu autentifikasiya zamanı.
İmza
add_action( 'wp_login', 'my_callback', 10, 2 ); // receives $user_login, WP_User $userYeni istifadəçi yaradıldıqdan dərhal sonra işə düşür.
İşə düşür
Qeydiyyat zamanı.
İmza
add_action( 'user_register', 'my_callback', 10, 2 ); // receives $user_id, $userdataAutentifikasiya nəticəsini filtrləyir. Girişi bloklamaq üçün WP_Error qaytarın.
İşə düşür
Giriş cəhdi zamanı.
İmza
add_filter( 'authenticate', 'my_callback', 30, 3 ); // receives $user, $username, $passwordTələ
Burada prioritet çox önəmlidir. WordPress nüvəsi öz yoxlamalarını 20 və 30 prioritetlərində qoşur — çox erkən qoşsanız, parol hətta yoxlanılmamışdan əvvəl işə düşürsünüz.
REST marşrutlarını və sahələrini qeyd edir.
İşə düşür
REST API işə başladıqda.
İmza
add_action( 'rest_api_init', 'my_callback' );Nümunə
add_action( 'rest_api_init', function () {
register_rest_route( 'myplugin/v1', '/items', array(
'methods' => 'GET',
'callback' => 'my_get_items',
'permission_callback' => '__return_true', // BE DELIBERATE ABOUT THIS
) );
} );Tələ
permission_callback TƏLƏB OLUNUR — WP 5.5-dən bəri onu buraxmaq bildiriş verir və onu __return_true təyin etmək endpoint-i tamamilə açıq edir. Bu, həqiqətən açıq məlumatlar üçün yaxşıdır, qalan hər şey üçün isə ciddi bir boşluqdur. Qərar verin, standart buraxmayın.
wp_schedule_event() üçün xüsusi təkrarlanma intervalı əlavə edir.
İşə düşür
WordPress mövcud cədvəllərinin siyahısını qurduqda.
İmza
add_filter( 'cron_schedules', 'my_callback' ); // receives $schedulesNümunə
add_filter( 'cron_schedules', function ( $schedules ) {
$schedules['every_five_minutes'] = array(
'interval' => 300, // seconds
'display' => __( 'Every 5 minutes', 'textdomain' ),
);
return $schedules;
} );Tələ
WP-Cron əsl cron deyil. O yalnız kimsə saytı ziyarət etdikdə işə düşür, ona görə də az trafikli sayt beş dəqiqəlik cədvəli hər beş dəqiqədə işlətməyəcək. Zamanlama həqiqətən vacibdirsə, WP-Cron-u söndürün (DISABLE_WP_CRON) və wp-cron.php-ni real sistem cron-undan çağırın.
Şərh yadda saxlandıqdan dərhal sonra işə düşür.
İşə düşür
Şərh göndərildikdə.
İmza
add_action( 'comment_post', 'my_callback', 10, 3 ); // receives $comment_id, $approved, $commentdataŞərh məlumatlarını yadda saxlanmazdan əvvəl filtrləyir. Spam yoxlamaları və doğrulama üçün istifadə olunur.
İşə düşür
Şərh yazılmazdan əvvəl.
İmza
add_filter( 'preprocess_comment', 'my_callback' ); // receives $commentdataTələ
Burada şərhi rədd etmək üçün mesajla wp_die() çağırın — false qaytarmaq onu dayandırmır.
Uğurlu ödənişdən sonra sifariş-alındı səhifəsində işə düşür.
İşə düşür
Müştəri təşəkkür səhifəsinə çatdıqda.
İmza
add_action( 'woocommerce_thankyou', 'my_callback' ); // receives $order_idTələ
Bu, sifarişin icrasını (fulfilment) işə salmaq üçün etibarlı yer DEYİL. O yalnız müştəri həqiqətən təşəkkür səhifəsinə çatdıqda işə düşür — əgər ödəniş etdikdən sonra tabı bağlayarlarsa, heç vaxt işə düşmür. Mütləq baş verməli olan hər şey üçün woocommerce_payment_complete və ya sifariş-statusu keçidi hook-undan istifadə edin.
Məhsul səhifəsində səbətə əlavə et düyməsindən dərhal əvvəl işarələmə çıxarır.
İşə düşür
Məhsul səhifəsi göstərilərkən.
İmza
add_action( 'woocommerce_before_add_to_cart_button', 'my_callback' );Klassik ödəniş səhifəsində sahələr əlavə edir, silir və ya yenidən sıralayır.
İşə düşür
Ödəniş forması qurulduqda.
İmza
add_filter( 'woocommerce_checkout_fields', 'my_callback' ); // receives $fieldsTələ
Bu, yalnız KLASSİK (shortcode) ödəniş səhifəsinə təsir edir. Daha yeni blok əsaslı ödəniş səhifəsi onu tamamilə nəzərə almır və JavaScript-də Slot & Fill vasitəsilə fərdiləşdirilir. Bu, demək olar ki, hər kəsi ilk dəfə çaşdırır.