اضافه کردن شماره موبایل به دیدگاه در وردپرس | آموزش اضافه کردن فیلد شماره موبایل برای کامنت وردپرس

اضافه کردن فیلد شماره موبایل به دیدگاه ها در وردپرس

برای اضافه کردن فیلد شماره موبایل به کامنت ها در وردپرس باید ابتدا وارد هاست خود شوید، سپس در پوشه wp-content یک پوشه بنام mu-plugins ایجاد نمایید، در نام گذاری این پوشه دقت داشته باشید که باید دقیقاً به همین صورت mu-plugins باشد.

سپس یک فایل php با نام دلخواه و ترجیهاً نام numcomment.php ایجاد کرده و کد زیر را در آن بصورت کامل قرار دهید.

<?php
defined('ABSPATH') OR die('This script cannot be accessed directly.');

add_filter('comment_form_defaults', function ($default) {
    if (!isset($default['fields'])) {
        return $default;
    }

    $phone_number_field = '
    <p class="comment-form-author">
        <label for="phone_number">شماره تماس<span class="required" aria-hidden="true">*</span></label>
        <input id="phone_number" name="phone_number" type="text" value="" size="30" maxlength="245" placeholder="09120000000" required />
    </p>';

    $my_field_set = false;
    foreach ($default['fields'] as $key => $value) {
        $fields[$key] = $value;
        if ($key === 'email') {
            $fields['phone_number'] = $phone_number_field;
            $my_field_set = true;
        }
    }

    if ($my_field_set === false) {
        $fields['phone_number'] = $phone_number_field;
    }

    $default['fields'] = $fields;
    return $default;
});

add_filter('preprocess_comment', 'verify_comment_meta_data');
function verify_comment_meta_data($commentdata) {
    if (!isset($_POST['phone_number'])) {
        add_filter('wp_is_comment_flood', '__return_true', 999);
        add_filter('comment_flood_message', function () {
            return 'شماره موبایل وارد نشده است.';
        }, 999);
    }

    if (!preg_match('/^(\+98|0098|98|0|\+980)?9\d{9}$/', $_POST['phone_number'])) {
        add_filter('wp_is_comment_flood', '__return_true', 999);
        add_filter('comment_flood_message', function () {
            return 'شماره موبایل ارسالی صحیح نمی باشد';
        }, 999);
    }

    return $commentdata;
}

add_action('comment_post', function ($comment_id) {
    echo update_comment_meta($comment_id, 'phone_number', esc_html(sanitize_text_field($_POST['phone_number'])), true);
});

add_filter('manage_edit-comments_columns', function ($col) {
    $col['phone_number'] = 'شماره موبایل';
    return $col;
}, 999);

add_filter('manage_comments_custom_column', function ($column, $comment_ID) {
    if ($column == 'phone_number') {
        echo esc_html(get_comment_meta($comment_ID, 'phone_number', true));
    }
}, 10, 2);

add_filter('us_comment_form_fields', function ($default) {
    $phone_number_field = [
        'type' => 'text',
        'name' => 'phone_number',
        'placeholder' => '09120000000',
        'required' => true,
    ];

    $my_field_set = false;
    foreach ($default as $key => $value) {
        $fields[$key] = $value;
        if ($key === 'email') {
            $fields['phone_number'] = $phone_number_field;
            $my_field_set = true;
        }
    }

    if ($my_field_set === false) {
        $fields['phone_number'] = $phone_number_field;
    }

    $default = $fields;
    return $default;
}, 999);
?>

اکنون بخش دیدگاه های خود را بررسی نمایید.

تجربه کاربران

دیدگاه‌ها و پرسش‌ها

0 دیدگاه
ثبت دیدگاه جدید برای این صفحه بسته است؛ دیدگاه‌های قبلی همچنان قابل مشاهده‌اند.
  1. هنوز دیدگاهی ثبت نشده است.