اضافه کردن فیلد شماره موبایل به دیدگاه ها در وردپرس
برای اضافه کردن فیلد شماره موبایل به کامنت ها در وردپرس باید ابتدا وارد هاست خود شوید، سپس در پوشه 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>';
// We want the field position after the email
$my_filed_set = false;
foreach ( $default['fields'] as $key => $value ) {
$fields[ $key ] = $value;
if ( $key === 'email' ) {
$fields['phone_number'] = $phone_number_field;
$my_filed_set = true;
}
}
// when email field lost
if ( $my_filed_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 ( 'phone_number' == $column ) {
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,
];
// We want the field position after the email
$my_filed_set = false;
foreach ( $default as $key => $value ) {
$fields[ $key ] = $value;
if ( $key === 'email' ) {
$fields['phone_number'] = $phone_number_field;
$my_filed_set = true;
}
}
// when email field lost
if ( $my_filed_set === false ) {
$fields['phone_number'] = $phone_number_field;
}
$default = $fields;
return $default;
}, 999 );
اکنون بخش دیدگاه های خود را بررسی نمایید.