فهرس خطافات ووردبريس
فهرس قابل للبحث لإجراءات ووردبريس ومُرشِّحاته (actions وfilters) التي يستخدمها المطوّرون فعلًا — مع توقيع add_action/add_filter الدقيق، ومتى يُطلَق، ومثال عملي، والأمر الذي يوقِع الناس في المشاكل.
39 خطاف، مع توقيع add_action / add_filter الدقيق، ومتى يُطلَق، ومثال عملي، والأمر الذي يوقع الناس في الخطأ. 1 منها موسومة بأنها غير مُتحقَّق منها — لم نتحقق من عدد وسائطها مقابل مصدر WordPress، ونُفضّل الإشارة إلى ذلك بدلًا من تقديم تخمين على أنه حقيقة.
هذه القائمة ليست شاملة ولا تدّعي ذلك — فلدى WordPress آلاف الخطافات. إنها تغطي تلك التي يلجأ إليها الناس فعليًا.
يُنفَّذ بعد انتهاء ووردبريس من التحميل ولكن قبل إرسال أي ترويسات. المكان القياسي لتسجيل أنواع المقالات المخصّصة والتصنيفات وقواعد إعادة الكتابة.
يُطلَق
في كل طلب، في الواجهة الأمامية ولوحة الإدارة، بعد تحميل النواة والإضافات والقالب.
التوقيع
add_action( 'init', 'my_callback' );مثال
add_action( 'init', function () {
register_post_type( 'book', array(
'public' => true,
'label' => 'Books',
'show_in_rest' => true, // required for the block editor
) );
} );المطبّ
يُنفَّذ init في كل طلب، بما في ذلك AJAX وREST وcron. أي عملية بطيئة هنا (طلب HTTP، أو استعلام ثقيل) تُثقل كل تحميل صفحة. كذلك: المستخدم الحالي متاح هنا، لكنك لا تستطيع إخراج أي شيء — لم تُرسَل الترويسات بعد، لكنها على وشك أن تُرسَل.
يُنفَّذ بمجرد تحميل القالب. المكان الصحيح لاستدعاء add_theme_support() وadd_image_size() وتسجيل قوائم التنقّل.
يُطلَق
بعد تحميل ملف functions.php الخاص بالقالب، وقبل init.
التوقيع
add_action( 'after_setup_theme', 'my_callback' );مثال
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
} );المطبّ
تسجيل أحجام الصور على init بدلًا من هنا ينجح مصادفةً في معظم الحالات ثم يفشل بشكل غامض في بعضها. استخدم after_setup_theme — فهو مُخصَّص لذلك.
يُنفَّذ بمجرد تحميل جميع الإضافات المُفعَّلة. أبكر نقطة آمنة للتفاعل مع إضافة أخرى.
يُطلَق
بعد تضمين كل ملفات الإضافات، وقبل تحميل القالب.
التوقيع
add_action( 'plugins_loaded', 'my_callback' );المطبّ
المستخدم الحالي غير متاح هنا بعد — لن تعمل wp_get_current_user() بشكل موثوق. إن كنت بحاجة إلى المستخدم، فاستخدم init.
يُنفَّذ بعد تحميل ووردبريس بالكامل — الإضافات والقالب وinit والمستخدم كلها جاهزة.
يُطلَق
بعد init وبعد إعداد المستخدم الحالي.
التوقيع
add_action( 'wp_loaded', 'my_callback' );يُنفَّذ في بداية كل طلب في لوحة الإدارة. يُستخدَم لـ register_setting() وفحوص الصلاحيات وعمليات إعادة التوجيه في لوحة الإدارة.
يُطلَق
في كل طلب على جانب لوحة الإدارة.
التوقيع
add_action( 'admin_init', 'my_callback' );المطبّ
يُطلَق أيضًا على طلبات admin-ajax.php، وهي ليست حقًا "شاشات إدارة". إذا كان ردّ النداء لديك يفترض وجود شاشة، فاحمِه بـ wp_doing_ajax().
المكان الصحيح الوحيد لإدراج CSS وJavaScript في الواجهة الأمامية.
يُطلَق
عند تحميل صفحات الواجهة الأمامية، قبل عرض الـ head.
التوقيع
add_action( 'wp_enqueue_scripts', 'my_callback' );مثال
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
);
} );المطبّ
رغم الاسم، فهو يتعامل مع الأنماط (STYLES) مثلما يتعامل مع السكربتات — لا يوجد خطّاف باسم wp_enqueue_styles، ويُضيّع الناس وقتًا حقيقيًا بحثًا عنه. كذلك: لا يُطلَق هذا في لوحة الإدارة (استخدم admin_enqueue_scripts) ولا في محرّر البلوكات (استخدم enqueue_block_editor_assets).
إدراج CSS/JS في لوحة الإدارة. يستقبل لاحقة الخطّاف للشاشة الحالية حتى تتمكن من تحميل الأصول على شاشة واحدة فقط.
يُطلَق
عند تحميل صفحات لوحة الإدارة.
التوقيع
add_action( 'admin_enqueue_scripts', 'my_callback' ); // receives $hook_suffixمثال
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 );
} );المطبّ
عدم الحماية بالتحقّق من $hook هو السبب الأكثر شيوعًا لكسر إضافةٍ لشاشات إدارة لا علاقة لها بها. حمّل أصولك حيث تكون مطلوبة ولا شيء غير ذلك.
إدراج الأصول في محرّر البلوكات (Gutenberg) فقط — لا في الواجهة الأمامية ولا في بقية لوحة الإدارة.
يُطلَق
عند تحميل محرّر البلوكات.
التوقيع
add_action( 'enqueue_block_editor_assets', 'my_callback' );يطبع المُخرَجات داخل الـ <head>. يُستخدَم لوسوم meta وأنماط CSS الحرجة المُضمَّنة.
يُطلَق
داخل الـ <head>، في الواجهة الأمامية.
التوقيع
add_action( 'wp_head', 'my_callback' );المطبّ
لا تُدرِج السكربتات أو الأنماط هنا — استخدم wp_enqueue_scripts، فهو يترك لووردبريس إدارة التبعيات وإزالة التكرار. إخراج وسم <script> داخل wp_head يتجاوز كل ذلك، وهو سبب تحميل كثير من المواقع لـ jQuery ثلاث مرات.
يطبع المُخرَجات قبل </body> مباشرةً. المكان المناسب لمقتطفات التحليلات والترميز المؤجَّل.
يُطلَق
في نهاية صفحة الواجهة الأمامية.
التوقيع
add_action( 'wp_footer', 'my_callback' );المطبّ
القالب الذي ينسى استدعاء wp_footer() يكسر شريط الإدارة، ويكسر أي إضافة تُدرِج سكربتًا في التذييل، ويُرفَض تلقائيًا في مراجعة القوالب على wordpress.org.
يُرشِّح محتوى المقال قبل عرضه مباشرةً. المكان المعتاد لإلحاق ترميز بالمقال أو إضافته قبله.
يُطلَق
في كل مرة يُستدعى فيها the_content().
التوقيع
add_filter( 'the_content', 'my_callback' ); // receives $contentمثال
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>';
} );المطبّ
يُنفَّذ هذا أكثر بكثير مما تظن — في الودجات، وفي استجابات REST، وفي توليد المقتطفات لدى بعض الإضافات، ومرة لكل مقال ضمن حلقة في أرشيف. دون حماية is_singular / in_the_loop / is_main_query، ستظهر دعوتك لاتخاذ إجراء خمس عشرة مرة في فهرس المدونة وداخل موجز RSS. هذا هو المُرشِّح الأكثر إساءةً في استخدامه في ووردبريس.
يُرشِّح عنوان المقال قبل عرضه.
يُطلَق
في كل مرة تُستدعى فيها the_title() أو get_the_title().
التوقيع
add_filter( 'the_title', 'my_callback', 10, 2 ); // receives $title, $post_idالمطبّ
يُطلَق أيضًا للعناوين في قائمة الإدارة، وفي قوائم التنقّل، وفي عنصر <title> للمستند. ترشيحه دون شروط سيعيد تسمية أشياء في أماكن لم تقصدها.
يحدّد عدد الكلمات التي يحتويها المقتطف المُولَّد تلقائيًا. القيمة الافتراضية 55.
يُطلَق
عندما يولّد ووردبريس مقتطفًا لمقال ليس له مقتطف يدوي.
التوقيع
add_filter( 'excerpt_length', 'my_callback' ); // receives $length (words)مثال
add_filter( 'excerpt_length', function ( $length ) {
return 25;
}, 999 ); // high priority: many themes set this too, and last one winsالمطبّ
لا تأثير له على المقالات التي لها مقتطف يدوي — فتلك تُستخدَم حرفيًا. وكثير من القوالب تضبط هذا المُرشِّح بنفسها، لذا كثيرًا ما تحتاج إلى رقم أولوية عالٍ لتفوز.
يغيّر السلسلة النصية المُلحَقة بمقتطف مقتطَع. القيمة الافتراضية " […]".
يُطلَق
عندما يُقتطَع مقتطف مُولَّد تلقائيًا.
التوقيع
add_filter( 'excerpt_more', 'my_callback' ); // receives $moreيعدّل الاستعلام قبل تنفيذه. الطريقة الصحيحة لتغيير ما يظهر في أرشيف — أفضل بكثير من WP_Query ثانٍ.
يُطلَق
بعد تحليل متغيّرات الاستعلام، وقبل بناء SQL.
التوقيع
add_action( 'pre_get_posts', 'my_callback' ); // receives WP_Query $query (by reference)مثال
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 );
}
} );المطبّ
يُنفَّذ في لوحة الإدارة أيضًا، ويُنفَّذ لكل استعلام، بما في ذلك القوائم والودجات ومكتبة الوسائط. أغفِل حمايتي is_admin() وis_main_query() وستغيّر بصمت ما تعرضه قائمة المقالات في الإدارة — علة يصعب حقًا تتبّع أصلها. لاحظ أيضًا: عدّل $query، ولا تُرجِع أي شيء.
يُرشِّح جملة WHERE الخام في SQL الخاصة باستعلام.
يُطلَق
أثناء تجميع SQL الخاص بالاستعلام.
التوقيع
add_filter( 'posts_where', 'my_callback', 10, 2 ); // receives $where, WP_Query $queryالمطبّ
أنت تكتب SQL خامًا. احمِ دائمًا بـ $query->is_main_query() واستخدم دائمًا $wpdb->prepare() لأي مُدخَل من المستخدم. هذه أسرع طريقة لإدخال حقن SQL إلى موقع ووردبريس.
يُرشِّح إجمالي عدد المقالات التي وجدها الاستعلام — وهو ما يُحسَب منه ترقيم الصفحات.
يُطلَق
بعد تنفيذ الاستعلام، وقبل حساب ترقيم الصفحات.
التوقيع
add_filter( 'found_posts', 'my_callback', 10, 2 ); // receives $found_posts, WP_Query $queryيحدّد الحجم بالبكسل الذي إن تجاوزه ووردبريس صغّر الصورة المرفوعة وقدّم نسخة "-scaled" بدلًا من أصلك. القيمة الافتراضية 2560.
يُطلَق
عند الرفع، حين يقرّر ووردبريس ما إذا كانت الصورة "كبيرة".
التوقيع
add_filter( 'big_image_size_threshold', 'my_callback' ); // receives int $thresholdمثال
// 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;
} );المطبّ
هذا هو السبب الأكثر شيوعًا لمشكلة "صورتي تبدو ضبابية بعد رفعها إلى ووردبريس"، ولا يكاد أحد يعلم بوجوده. أصلك ما زال على القرص — إنه ببساطة لا يُقدَّم أبدًا. لاحظ أنه ينطبق على الحافة الأطول، ولا يؤثّر إلا على الصور المرفوعة بعد تفعيل المُرشِّح.
يُرشِّح مصفوفة أحجام الصور التي يوشك ووردبريس أن يولّدها لملف مرفوع. احذف حجمًا (unset) لإيقاف توليده.
يُطلَق
عند الرفع، قبل إنشاء الملفات المُشتقّة.
التوقيع
add_filter( 'intermediate_image_sizes_advanced', 'my_callback', 10, 2 ); // receives $sizes, $metadataمثال
add_filter( 'intermediate_image_sizes_advanced', function ( $sizes ) {
unset( $sizes['1536x1536'] );
unset( $sizes['2048x2048'] );
return $sizes;
} );المطبّ
إزالة حجم يستخدمه قالبك فعلًا تعني أن ووردبريس سيرجع إلى الأصل بالحجم الكامل — وهو أسوأ من مساحة القرص التي وفّرتها. وهذا يوقف فقط إنشاء الملفات الجديدة؛ أما الموجودة فتبقى حتى تعيد التوليد.
يحدّد جودة JPEG التي يعيد ووردبريس ترميز الصور المرفوعة بها. القيمة الافتراضية 82.
يُطلَق
كلما كتب ووردبريس ملف JPEG.
التوقيع
add_filter( 'jpeg_quality', 'my_callback', 10, 2 ); // receives $quality, $contextالمطبّ
جودة 82 مناسبة للصور الفوتوغرافية ورديئة بوضوح للقطات الشاشة والشعارات والرسوميات المسطّحة — فتلك لها حواف حادة ولا ضوضاء فوتوغرافية تخفي فيها التشوّهات. كذلك: wp_editor_set_quality هو المُرشِّح الأحدث ويغطّي فئات محرّر الصور مباشرةً؛ ومن الشائع ضبط كليهما.
يحدّد جودة الإخراج التي تستخدمها فئات WP_Image_Editor (GD وImagick).
يُطلَق
عندما تضبط نسخة من محرّر الصور جودتها.
التوقيع
add_filter( 'wp_editor_set_quality', 'my_callback', 10, 2 ); // receives $quality, $mime_typeيضيف أحجام صورك المخصّصة إلى قائمة الأحجام المنسدلة في نافذة الوسائط ومحرّر البلوكات.
يُطلَق
عندما تبني واجهة الوسائط مُحدِّد الأحجام لديها.
التوقيع
add_filter( 'image_size_names_choose', 'my_callback' ); // receives $sizesمثال
add_filter( 'image_size_names_choose', function ( $sizes ) {
return array_merge( $sizes, array( 'card' => __( 'Card', 'textdomain' ) ) );
} );المطبّ
تسجّل add_image_size() الحجم لكنها لا تجعله قابلًا للاختيار في المحرّر. كل سؤال بصيغة "حجم صورتي المخصّص لا يظهر في القائمة المنسدلة" سببه غياب هذا المُرشِّح.
يفحص ملفًا أو يرفضه قبل نقله إلى مجلد الرفع (uploads).
يُطلَق
أثناء الرفع، قبل كتابة الملف.
التوقيع
add_filter( 'wp_handle_upload_prefilter', 'my_callback' ); // receives $fileالمطبّ
لرفض ملف، اضبط $file['error'] على سلسلة رسالة نصية وأرجِع $file. إرجاع false أو رمي استثناء لن يفعل ما تريد.
يُرشِّح مصفوفة البيانات الوصفية (بما في ذلك الأحجام المُولَّدة) بعد معالجة مرفق.
يُطلَق
بعد إنشاء الصور المُشتقّة عند الرفع.
التوقيع
add_filter( 'wp_generate_attachment_metadata', 'my_callback', 10, 2 ); // receives $metadata, $attachment_idالمطبّ
هذا هو الخطّاف الذي تستخدمه إضافات تحسين الصور. قد يكون بطيئًا — فهو يُنفَّذ بعد كتابة كل حجم صورة، وإجراء طلب HTTP هنا يجعل كل رفع ينتظره.
يُرشِّح الصور المرشّحة في srcset التي يولّدها ووردبريس لصورة متجاوبة.
يُطلَق
عند عرض صورة متجاوبة.
التوقيع
add_filter( 'wp_calculate_image_srcset', 'my_callback', 10, 5 );المطبّ
إزالة حجم medium_large (768w) في مكان آخر تُضعف srcset بصمت — فذلك الحجم موجود بالكامل تقريبًا لخدمته.
لم نتحقق من عدد وسائط هذا الخطاف الدقيق مقابل مصدر WordPress. راجع developer.wordpress.org قبل الاعتماد عليه. نُفضّل الإشارة إلى عدم اليقين بدلًا من تقديم تخمين على أنه حقيقة بصمت.
يسجّل صفحات قائمة الإدارة والقوائم الفرعية.
يُطلَق
عندما تُبنى قائمة الإدارة.
التوقيع
add_action( 'admin_menu', 'my_callback' );مثال
add_action( 'admin_menu', function () {
add_options_page(
'My Plugin',
'My Plugin',
'manage_options', // capability — NOT a role
'my-plugin',
'my_render_settings_page'
);
} );المطبّ
وسيط الصلاحية هو صلاحية (capability)، وليس دورًا (role). تمرير "administrator" يبدو أنه يعمل (لأن المدراء يملكون صلاحية بهذا الاسم في بعض الإعدادات) ثم يمنح الوصول بصمت لأشخاص خاطئين. استخدم manage_options.
يطبع إشعارًا في أعلى شاشة الإدارة.
يُطلَق
عند عرض صفحة الإدارة.
التوقيع
add_action( 'admin_notices', 'my_callback' );المطبّ
يُطلَق على كل شاشة إدارة. الإضافة التي تعرض إشعار "شكرًا لتثبيتك!" دون شرط على جميعها هي أكثر نمط مكروه في لوحة إدارة ووردبريس. احمِه، واجعله قابلًا للإغلاق.
يُنفَّذ كلما أُنشئ مقال أو حُدِّث. المكان المعتاد لحفظ بيانات صناديق meta.
يُطلَق
بعد كتابة المقال إلى قاعدة البيانات.
التوقيع
add_action( 'save_post', 'my_callback', 10, 3 ); // receives $post_id, $post, $updateمثال
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 );المطبّ
يُطلَق على الحفظ التلقائي والمراجعات كما يُطلَق على عمليات الحفظ الحقيقية. دون الحمايات الثلاث أعلاه، ستُكتَب بياناتك الوصفية فوق القيم الفارغة في كل مرة يحفظ فيها المحرّر تلقائيًا — علة تبدو وكأن البيانات تختفي عشوائيًا.
يسجّل صناديق meta في شاشة تحرير المقال.
يُطلَق
عندما تُبنى شاشة التحرير.
التوقيع
add_action( 'add_meta_boxes', 'my_callback', 10, 2 ); // receives $post_type, $postالمطبّ
صناديق meta الكلاسيكية لا تظهر في محرّر البلوكات إلا إذا رجع المحرّر إلى وضع التوافق. لموقع أصيل قائم على محرّر البلوكات، سجّل بيانات المقال الوصفية (post meta) مع show_in_rest وابنِ لوحة في الشريط الجانبي بدلًا من ذلك.
يُنفَّذ بعد نجاح المستخدم في تسجيل الدخول.
يُطلَق
عند نجاح المصادقة.
التوقيع
add_action( 'wp_login', 'my_callback', 10, 2 ); // receives $user_login, WP_User $userيُنفَّذ فور إنشاء مستخدم جديد.
يُطلَق
عند التسجيل.
التوقيع
add_action( 'user_register', 'my_callback', 10, 2 ); // receives $user_id, $userdataيُرشِّح نتيجة المصادقة. أرجِع WP_Error لمنع تسجيل الدخول.
يُطلَق
أثناء محاولة تسجيل الدخول.
التوقيع
add_filter( 'authenticate', 'my_callback', 30, 3 ); // receives $user, $username, $passwordالمطبّ
الأولوية مهمة جدًا هنا. تربط نواة ووردبريس فحوصها الخاصة عند الأولويتين 20 و30 — إن ربطت مبكرًا جدًا، فستُنفَّذ قبل أن تُفحَص كلمة المرور أصلًا.
يسجّل مسارات REST وحقوله.
يُطلَق
عند تهيئة واجهة REST API.
التوقيع
add_action( 'rest_api_init', 'my_callback' );مثال
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
) );
} );المطبّ
permission_callback مطلوب — منذ WP 5.5 يؤدي إغفاله إلى إطلاق إشعار، وضبطه على __return_true يجعل نقطة النهاية عامة بالكامل. هذا مقبول للبيانات العامة فعلًا، وثغرة خطيرة لأي شيء آخر. قرّر، ولا تترك الأمر للقيمة الافتراضية.
يضيف فترة تكرار مخصّصة لـ wp_schedule_event().
يُطلَق
عندما يبني ووردبريس قائمة الجداول المتاحة لديه.
التوقيع
add_filter( 'cron_schedules', 'my_callback' ); // receives $schedulesمثال
add_filter( 'cron_schedules', function ( $schedules ) {
$schedules['every_five_minutes'] = array(
'interval' => 300, // seconds
'display' => __( 'Every 5 minutes', 'textdomain' ),
);
return $schedules;
} );المطبّ
WP-Cron ليس cron حقيقيًا. فهو لا يُطلَق إلا عندما يزور أحدهم الموقع، لذا لن يشغّل موقع قليل الزيارات جدولًا كل خمس دقائق فعلًا كل خمس دقائق. إن كان التوقيت مهمًا حقًا، فعطّل WP-Cron (DISABLE_WP_CRON) واستدعِ wp-cron.php من cron نظام حقيقي.
يُنفَّذ فور حفظ تعليق.
يُطلَق
عند إرسال التعليق.
التوقيع
add_action( 'comment_post', 'my_callback', 10, 3 ); // receives $comment_id, $approved, $commentdataيُرشِّح بيانات التعليق قبل حفظها. يُستخدَم لفحوص البريد المزعج والتحقّق.
يُطلَق
قبل كتابة التعليق.
التوقيع
add_filter( 'preprocess_comment', 'my_callback' ); // receives $commentdataالمطبّ
لرفض تعليق هنا، استدعِ wp_die() مع رسالة — إرجاع false لا يوقفه.
يُنفَّذ في صفحة استلام الطلب بعد إتمام عملية دفع ناجحة.
يُطلَق
عندما يصل العميل إلى صفحة الشكر.
التوقيع
add_action( 'woocommerce_thankyou', 'my_callback' ); // receives $order_idالمطبّ
هذا ليس مكانًا موثوقًا لتشغيل تنفيذ الطلب. فهو لا يُطلَق إلا إذا وصل العميل فعلًا إلى صفحة الشكر — وإن أغلق التبويب بعد الدفع، فلن يُنفَّذ أبدًا. استخدم woocommerce_payment_complete أو خطّاف انتقال حالة الطلب لأي شيء يجب أن يحدث.
يُخرِج ترميزًا قبل زر الإضافة إلى السلة مباشرةً في صفحة المنتج.
يُطلَق
أثناء عرض صفحة المنتج.
التوقيع
add_action( 'woocommerce_before_add_to_cart_button', 'my_callback' );يضيف حقولًا أو يزيلها أو يعيد ترتيبها في صفحة الدفع الكلاسيكية.
يُطلَق
عندما يُبنى نموذج الدفع.
التوقيع
add_filter( 'woocommerce_checkout_fields', 'my_callback' ); // receives $fieldsالمطبّ
هذا يؤثّر فقط على صفحة الدفع الكلاسيكية (القائمة على shortcode). أما صفحة الدفع الأحدث القائمة على البلوكات فتتجاهله تمامًا، وتُخصَّص عبر Slot & Fill في JavaScript. هذا يوقِع الجميع تقريبًا في الخطأ لأول مرة.