خروجی گرفتن از شماره موبایل کاربران در وردپرس و ووکامرس یعنی جمع کردن شمارههایی که در جاهای مختلف سایت ذخیره شدهاند، مثل حساب کاربری، سفارشها، فرمها و نوبتها، در یک فهرست تمیز و بدون تکرار که بتوان آن را برای پیامک یا تحلیل مشتریان استفاده کرد. چون هر افزونه این داده را جای متفاوتی نگه میدارد، خروجی کامل معمولاً به یک افزونه اختصاصی نیاز دارد.
در این مقاله توضیح میدهیم شماره موبایل در وردپرس کجا ذخیره میشود، افزونههای آماده کجا کم میآورند و یک افزونه اختصاصی خروجی شماره موبایل را چطور میسازیم؛ با نمونه کد و نکات حریم خصوصی.
در این مقاله میخوانید:
- شماره موبایل کاربران در وردپرس و ووکامرس کجا ذخیره میشود
- افزونه آماده یا اختصاصی؛ کدام برای خروجی مناسب است
- ساختار یک افزونه خروجی شماره موبایل، با نمونه کد
- رضایت کاربر، امنیت فایل خروجی و اشتباهات رایج
شماره موبایل کاربران در وردپرس و ووکامرس کجا ذخیره میشود؟
وردپرس بهطور پیشفرض فیلدی برای موبایل ندارد. هر افزونهای که شماره میگیرد، آن را در جای خودش ذخیره میکند و همین، خروجی گرفتن را سخت میکند:
- اطلاعات صورتحساب ووکامرس: فیلد billing_phone در متادیتای کاربر (جدول usermeta) برای مشتریانی که حساب ساختهاند.
- سفارشهای مهمان: شماره خریدارانی که بدون عضویت خرید کردهاند فقط روی خود سفارش ذخیره است، نه روی کاربر.
- افزونههای ورود با موبایل: معمولاً یک کلید متای اختصاصی برای شماره دارند.
- افزونههای فرمساز: ورودیهای فرم در جدولهای خود افزونه نگه داشته میشود.
- افزونههای نوبتدهی و خبرنامه: هر کدام پایگاه داده جداگانه خود را دارند.
در نتیجه یک مشتری ممکن است با سه شکل مختلف از یک شماره، مثلاً با صفر، با ۹۸+ و با ارقام فارسی، در سه جای مختلف ثبت شده باشد.
افزونه آماده یا افزونه اختصاصی برای خروجی شماره موبایل؟
| معیار | افزونه آماده خروجی | افزونه اختصاصی |
|---|---|---|
| منابع داده | معمولاً فقط کاربران یا فقط سفارشها | همه منابع سایت شما در یک خروجی |
| یکسانسازی و حذف تکرار | معمولاً ندارد | فرمت واحد شماره و حذف تکراریها |
| فیلتر | فیلترهای عمومی | فیلتر دلخواه: مبلغ خرید، محصول، تاریخ، شهر |
| اتصال مستقیم به پنل پیامک | بهندرت | ارسال مستقیم فهرست به API پنل پیامک |
| فشار روی سرور | گاهی کل داده را یکجا میخواند | پردازش دستهای و بدون قفل شدن سایت |
اگر فقط مشتریان ووکامرس با حساب کاربری مهماند، یک افزونه آماده معتبر کافی است. اما وقتی شمارهها در چند افزونه پخش شدهاند یا خروجی باید خودکار به پنل پیامک برود، طراحی افزونه وردپرس اختصاصی راه دقیقتر و سبکتری است.
یک افزونه خروجی شماره موبایل چطور ساخته میشود؟
ساختاری که برای این نوع افزونه به کار میبریم چهار بخش دارد:
- جمعآوری: خواندن شماره از هر منبع با API رسمی همان بخش؛ برای سفارشها از تابع wc_get_orders ووکامرس، که با ذخیرهسازی جدید سفارشها هم سازگار است.
- یکسانسازی: تبدیل ارقام فارسی و عربی به انگلیسی، حذف فاصله و خط تیره و تبدیل همه شکلها به قالب ۰۹xxxxxxxxx.
- حذف تکرار و غنیسازی: یکی کردن رکوردهای یک شماره و افزودن اطلاعاتی مثل تعداد سفارش و تاریخ آخرین خرید.
- خروجی: فایل CSV قابل باز شدن در اکسل، یا ارسال مستقیم به API پنل پیامک.
بخش اصلی جمعآوری از سفارشها، به شکل سادهشده، این است:
function dw_normalize_mobile( $phone ) {
$phone = strtr( $phone, array_combine(
array( '۰','۱','۲','۳','۴','۵','۶','۷','۸','۹' ),
range( 0, 9 )
) );
$phone = preg_replace( '/\D+/', '', $phone );
$phone = preg_replace( '/^(0098|98)/', '0', $phone );
return preg_match( '/^09\d{9}$/', $phone ) ? $phone : null;
}
function dw_collect_order_mobiles( $page = 1 ) {
$orders = wc_get_orders( array(
'limit' => 200,
'paged' => $page,
'status' => array( 'wc-completed', 'wc-processing' ),
) );
$mobiles = array();
foreach ( $orders as $order ) {
$mobile = dw_normalize_mobile( $order->get_billing_phone() );
if ( $mobile ) {
$mobiles[ $mobile ] = $order->get_formatted_billing_full_name();
}
}
return $mobiles;
}
چند نکته در همین کد کوتاه هست: سفارشها صفحهبهصفحه خوانده میشوند تا روی فروشگاههای بزرگ حافظه سرور پر نشود، و شماره نامعتبر بهجای ورود به فهرست کنار گذاشته میشود. در نسخه کامل، این عملیات با کار زمانبندیشده در پسزمینه انجام میشود و فقط کاربرانی که دسترسی مدیریت دارند میتوانند خروجی بگیرند.
رضایت کاربر و امنیت فایل خروجی را چطور رعایت کنیم؟
شماره موبایل داده شخصی است. خروجی گرفتن از آن مسئولیت دارد:
- فقط به کسانی پیامک تبلیغاتی بدهید که رضایت دادهاند. یک چکباکس رضایت در ثبتنام و تسویهحساب اضافه کنید و همین را در افزونه فیلتر کنید.
- امکان لغو عضویت: شمارههایی که درخواست لغو دادهاند باید از خروجیهای بعدی حذف شوند.
- فایل خروجی را در پوشه عمومی سایت ذخیره نکنید. فایلی که با یک آدرس قابل حدس دانلود شود، کل فهرست مشتریان را لو میدهد.
- دسترسی را محدود کنید: فقط نقش مدیر بتواند خروجی بگیرد و هر خروجی ثبت شود.
برای نکات کلیتر حفاظت از سایت، مقاله امنیت وردپرس را بخوانید.
اشتباهات رایج در خروجی گرفتن از شماره موبایل کاربران
- خروجی فقط از کاربران عضو و جا انداختن خریداران مهمان، که اغلب بخش بزرگی از مشتریاناند.
- یکسان نکردن فرمت شماره و ارسال چند پیامک به یک نفر.
- اجرای خروجی سنگین در ساعت اوج فروش و کند کردن سایت.
- نگه داشتن فایلهای خروجی قدیمی روی هاست.
- ارسال پیامک به شمارههایی که رضایت ندادهاند.
پرسشهای متداول
آیا بدون افزونه هم میشود از شماره موبایل مشتریان ووکامرس خروجی گرفت؟
با دسترسی به پایگاه داده و یک کوئری SQL میشود، اما ریسک دارد و با تغییر ساختار ذخیره سفارشها در نسخههای جدید ووکامرس ممکن است نتیجه ناقص بدهد. استفاده از API رسمی ووکامرس در یک افزونه، روش مطمئنتری است.
خروجی شمارهها را میتوان مستقیم به پنل پیامک فرستاد؟
بله، اگر پنل پیامک شما API داشته باشد. افزونه میتواند فهرست فیلترشده را مستقیم به یک گروه در پنل اضافه کند تا نیازی به دانلود و آپلود دستی فایل نباشد.
شمارههای ثبتشده در فرمها و نوبتدهی هم قابل خروجی است؟
بله. هر افزونهای که شماره را ذخیره کند، با بررسی ساختار داده آن قابل خواندن است. در نیازسنجی همه منابع شماره در سایت شما فهرست میشود.
ساخت این افزونه چقدر زمان میبرد؟
برای یک یا دو منبع داده و خروجی CSV معمولاً چند روز کافی است. اتصال مستقیم به پنل پیامک، فیلترهای پیشرفته و منابع بیشتر زمان را بیشتر میکند که بعد از بررسی سایت دقیق اعلام میشود.
0 نظر
برای ثبت نظر لطفاً کلیک کنید
لطفاً برای ثبت نظر ابتدا وارد حساب کاربری خود شوید