SHET22

مشکل ثبت مشتری به عنوان مهمان در سفارشات ووکامرس با ۵ خط کد

مشکل ثبت مشتری به عنوان مهمان در سفارشات ووکامرس با ۵ خط کد

یه سناریو رو تصور کنید: مشتری‌ای که شش ماه پیش تو سایتتون ثبت‌نام کرده، امروز برمی‌گرده، محصول رو می‌ذاره تو سبد خرید، می‌ره صفحه تسویه حساب، همون ایمیل همیشگیش رو وارد می‌کنه و پرداخت می‌کنه. همه‌چی هم درست پیش می‌ره. ولی وقتی می‌رید تو پیشخوان و لیست سفارش‌ها رو نگاه می‌کنید، جلوی اسم سفارش نوشته «مهمان».

ثبت مشتری به عنوان مهمان در سفارشات ووکامرس
ثبت مشتری به عنوان مهمان در سفارشات ووکامرس

بعدش هم مشتری بهتون پیام می‌ده که «من وارد حسابم شدم ولی سفارشم رو نمی‌بینم!» و شما باید دستی برید سفارش رو به حسابش وصل کنید. اگه روزی ده تا سفارش داشته باشید، خب حسابش رو بکنید.

خبر خوب اینه که این مشکل با چند خط کد ساده حل می‌شه. بیاید با هم بریم سراغش.

ثبت مشتری به عنوان مهمان در سفارشات ووکامرس

ووکامرس هر سفارش رو با یه فیلد به اسم customer_id ذخیره می‌کنه. این فیلد در واقع همون شناسه کاربری (User ID) اون شخص تو وردپرسه.

حالا اگه کسی موقع خرید لاگین کرده باشه، ووکامرس آی‌دیش رو برمی‌داره و می‌چسبونه به سفارش. ولی اگه لاگین نکرده باشه، این فیلد صفر ثبت می‌شه. صفر یعنی «مهمان». یعنی این سفارش به هیچ حساب کاربری‌ای وصل نیست.

نکته مهم اینجاست: ووکامرس ایمیل رو چک نمی‌کنه. براش مهم نیست که این ایمیل قبلاً تو دیتابیس بوده یا نه. فقط نگاه می‌کنه ببینه طرف موقع خرید لاگین بوده یا نه. همین. اطلاعات صورتحساب (اسم، ایمیل، آدرس) ذخیره می‌شه، ولی اتصال به حساب کاربری برقرار نمی‌شه.

برای همینه که مشتری بعداً وارد پنلش می‌شه و بخش «سفارش‌ها» خالیه.

چرا سفارش کاربران عضو، مهمان ثبت می‌شود؟

اینجا معمولاً دو تا عامل دست به دست هم می‌دن: یکی تنظیماتی که خودتون تو ووکامرس فعال کردید، یکی هم رفتار پیش‌فرض ووکامرس موقع تسویه حساب. جدا از هم هیچ‌کدوم مشکلی درست نمی‌کنن، ولی وقتی کنار هم قرار می‌گیرن، نتیجه‌اش می‌شه همون سفارش‌های مهمانی که تو پیشخوان می‌بینید. بذارید هر کدوم رو جدا بررسی کنیم.

تنظیمات پرداخت مهمان

تنظیمات حساب مهمان
تنظیمات حساب مهمان

اول از همه بریم سراغ چیزی که خودتون احتمالاً فعالش کردید. تو مسیر ووکامرس > پیکربندی > حساب‌های کاربری و حریم خصوصی، یه بخش هست به اسم «پرداخت مهمان» که دو تا گزینه داره:

  • اجازه دادن به سفارش‌های بدون حساب کاربری
  • اجازه دادن به مشتری‌ها برای ورود به حساب هنگام تسویه حساب

خیلی از ما این گزینه‌ها رو فعال می‌کنیم که مسیر خرید کوتاه‌تر بشه و نرخ رها شدن سبد خرید بیاد پایین. که کار درستیه. ولی همین تصمیم درست، عوارض جانبی داره.

خرید با ایمیلی که از قبل تو سایت ثبت شده

این اصل ماجراست. مشتری عضو دارید، ولی لاگین نکرده. شاید کوکی‌هاش پاک شده، شاید با گوشی اومده، شاید اصلاً یادش نیست که قبلاً حساب داشته.

می‌ره تسویه حساب، ایمیلش رو می‌زنه، تیک «می‌خوام یه حساب کاربری بسازم» رو هم شاید بزنه، و سفارش ثبت می‌شه. ووکامرس هم چون طرف لاگین نبوده، سفارش رو مهمان ثبت می‌کنه.

نتیجه؟ یه حساب کاربری دارید با ایمیل X، و یه سفارش مهمان دارید با همون ایمیل X، ولی این دوتا هیچ ربطی به هم ندارن.

ارتباط با خطای An account is already registered with your email address

قبلاً تو مقاله رفع خطای An account is already registered with your email address در ووکامرس توضیح دادیم که با چند خط کد چطور می‌شه این خطا رو برداشت تا مشتری بتونه بدون لاگین خریدش رو تموم کنه. ولی حواستون باشه اون کد فقط جلوی نمایش خطا رو می‌گیره؛ سفارش همچنان مهمان ثبت می‌شه. یعنی اون مقاله «اجازه خرید» رو حل می‌کنه و این مقاله «وصل شدن سفارش به حساب کاربری» رو. برای اینکه مشکل کامل حل بشه، به هر دوتاش نیاز دارید.

مشکلاتی که درست می‌شه؟

شاید بگید خب چه اشکالی داره؟ سفارش که ثبت شده، پول هم که رسیده. ولی وقتی چند ماه بگذره می‌فهمید که:

مشتری سفارشش رو نمی‌بینه. وارد پنل می‌شه، بخش سفارش‌ها خالیه. برای محصولات دانلودی این فاجعه‌ست، چون لینک دانلودش هم در دسترس نیست.

تیکت پشتیبانی زیاد می‌شه. هر مشتری که سفارشش گم بشه، یه پیام می‌ده. اینا وقتتون رو می‌گیره.

کار دستی زیاد می‌شه. باید هر سفارش رو باز کنید، برید تو بخش اطلاعات صورتحساب، مشتری رو دستی انتخاب کنید و ذخیره کنید. برای ده تا سفارش قابل تحمله، برای صد تا نه.

گزارش‌هاتون دقیق نیست. ووکامرس نمی‌فهمه این آدم مشتری تکراریه. پس آمار «مشتری‌های بازگشتی» و ارزش طول عمر مشتری (LTV) اشتباه محاسبه می‌شه.

سیستم امتیاز و باشگاه مشتریان از کار می‌افته. اگه افزونه امتیازدهی یا کد تخفیف پلکانی دارید، به سفارش‌های مهمان امتیاز تعلق نمی‌گیره.

حل مشکل ثبت مشتری به صورت مهمان در سفارشات

خب بریم سراغ اصل کار. راه‌حل ساده‌ست: به ووکامرس می‌گیم موقع ساخته شدن سفارش، ایمیل وارد شده رو چک کن؛ اگه این ایمیل تو سایت حساب داره، سفارش رو به همون حساب وصل کن.

پیش‌نیاز این کار

سه تا نکته که خواهش می‌کنیم جدی بگیرید:

۱. بکاپ بگیرید. از دیتابیس و فایل‌ها. یه بار که با ویرایشگر پوسته سایتتون سفید بشه، می‌فهمید چرا اینقدر تاکید می‌کنیم.

۲. از پوسته فرزند استفاده کنید. اگه کد رو مستقیم تو functions.php پوسته اصلی بذارید، با اولین آپدیت پوسته کدتون می‌پره.

۳. راه بهترش افزونه Code Snippets هست. اگه با پوسته فرزند راحت نیستید، این افزونه رو نصب کنید. کد رو توش می‌ذارید، خیالتون هم راحته که با آپدیت پوسته چیزی از دست نمی‌ره. ضمناً اگه کد ایراد داشته باشه، خودش قبل از فعال‌سازی هشدار می‌ده و سایت رو نمی‌خوابونه.

افزونه Code Snippets
افزونه Code Snippets

مسیر دسترسی به functions.php

از پیشخوان وردپرس برید به نمایش > ویرایشگر فایل پوسته. از ستون سمت راست (یا چپ، بسته به زبان پیشخوانتون)، فایل توابع پوسته (functions.php) رو انتخاب کنید.

اگه از افزونه Code Snippets استفاده می‌کنید، برید به Snippets > Add New و کد رو اونجا بذارید.

قطعه کد اصلی

این کد رو انتهای فایل functions.php اضافه کنید:

php

function mihanwp_set_customer_email( $order, $data ) {
    $email = $data['billing_email'];
    if ( email_exists( $email ) ) {
        $user = get_user_by( 'email', $email );
        $order->set_customer_id( $user->ID );
    }
}
add_action( 'woocommerce_checkout_create_order', 'mihanwp_set_customer_email', 10, 2 );

همین. پنج خط کد. حالا بذارید ببینیم دقیقاً چی کار می‌کنه.

توضیح خط به خط کد

هوک woocommerce_checkout_create_order

این هوک درست تو لحظه‌ایه که ووکامرس داره شیء سفارش رو می‌سازه ولی هنوز تو دیتابیس ذخیره‌اش نکرده. یعنی بهترین نقطه برای دخالت. اگه بعد از ذخیره شدن دست به سفارش می‌زدیم، باید یه بار دیگه سفارش رو آپدیت می‌کردیم که هم کندتره هم ممکنه ایمیل‌های ووکامرس با اطلاعات اشتباه ارسال بشن.

اون عدد ۱۰ اولویت اجراست و ۲ یعنی این تابع دو تا ورودی می‌گیره: $order (خود سفارش) و $data (اطلاعاتی که مشتری تو فرم تسویه حساب پر کرده).

$data['billing_email']

ایمیلی که مشتری تو فیلد صورتحساب وارد کرده رو برمی‌داریم.

email_exists( $email )

این یه تابع بومی وردپرسه، نه ووکامرس. می‌ره تو جدول کاربرا می‌گرده ببینه کسی با این ایمیل ثبت‌نام کرده یا نه. اگه پیدا کنه آی‌دی کاربر رو برمی‌گردونه، اگه نه false.

پس این شرط یعنی: «اگه این ایمیل صاحب داره…»

get_user_by( 'email', $email )

حالا که مطمئن شدیم صاحب داره، کل اطلاعات اون کاربر رو می‌گیریم تا به IDش دسترسی داشته باشیم.

$order->set_customer_id( $user->ID )

و اینجا کار اصلی انجام می‌شه. همون فیلد customer_id که اول مقاله گفتیم، به جای صفر، آی‌دی کاربر واقعی رو می‌گیره.

از این لحظه به بعد ووکامرس این سفارش رو مال اون کاربر می‌دونه. تو پنل کاربری نمایش داده می‌شه، تو گزارش‌ها حساب می‌شه، و همه‌چی سر جاشه.

ثبت سفارش با ایمیل مشتری در ووکامرس
ثبت سفارش با ایمیل مشتری در ووکامرس

آزمایش درست کار کردن کد

کد رو که گذاشتید، حتماً تست کنید. اینجوری:

۱. یه حساب کاربری آزمایشی بسازید (مثلاً با ایمیل test@yoursite.com)

۲. از سایت خارج بشید یا از حالت ناشناس مرورگر استفاده کنید

۳. یه محصول ارزون بذارید تو سبد و برید تسویه حساب

۴. همون ایمیل test@yoursite.com رو وارد کنید و سفارش رو ثبت کنید

۵. برید به ووکامرس > سفارش‌ها

اگه همه‌چی درست باشه، ستون مشتری به جای «مهمان»، اسم و ایمیل اون کاربر آزمایشی رو نشون می‌ده.

برای اطمینان بیشتر، با همون حساب آزمایشی وارد سایت بشید و برید به حساب کاربری من > سفارش‌ها. سفارش باید اونجا باشه.

احتمال خطای Internal Server Error یا Error 500

اگه بعد از ذخیره کردن فایل، سایت سفید شد یا خطای ۵۰۰ دادید، نگران نشید. تو ۹۹ درصد مواقع مشکل از یه پرانتز یا سمی‌کالن جا افتاده‌ست.

اول از همه کد رو دوباره نگاه کنید. مطمئن بشید که:

  • تعداد { و } برابره
  • بعد از هر دستور ; گذاشتید
  • کد رو بعد از آخرین } فایل چسبوندید، نه وسط یه تابع دیگه
  • تگ <?php رو تصادفی دوباره تایپ نکردید

نکته مهم: خطای ۵۰۰ معمولاً یا به خاطر کمبود منابع سروره یا مشکل کدنویسی. با پنج خط کد، منابع سرور بعیده به مشکل بخوره. پس تقریباً مطمئن باشید که ایراد از کده.

سایت سفید شده و به پیشخوان دسترسی نداریم!

این حالت که ویرایشگر پوسته هم دیگه در دسترس نیست، کلاسیکه. راه‌حل:

از طریق FTP یا فایل منیجر هاست وارد بشید. برید به مسیر:

/wp-content/themes/نام-پوسته/functions.php

فایل رو دانلود کنید، کدی که اضافه کردید رو حذف کنید، دوباره آپلود کنید. سایت برمی‌گرده.

اگه اصلاً به فایل‌ها دسترسی ندارید، از سی‌پنل یا دایرکت‌ادمین هاستتون بخش File Manager رو باز کنید؛ همون کار رو می‌شه از اونجا هم انجام داد.

نصیحت دوستانه: به همین دلیله که می‌گیم افزونه Code Snippets بهتره. اون افزونه قبل از فعال کردن کد، ازش تست می‌گیره و اگه خطا داشته باشه فعالش نمی‌کنه. سایتتون هم سالم می‌مونه.

چند تا نکته تکمیلی

خب حتما نیازه که این اطلاعات رو هم داشته باشید!

این کد سفارش‌های قبلی رو درست نمی‌کند

حواستون باشه که این کد فقط روی سفارش‌های جدید اثر داره. اون صد تا سفارش مهمانی که تو دیتابیس دارید، همچنان مهمان می‌مونن.

برای اون‌ها یا باید دستی اقدام کنید، یا از افزونه‌هایی مثل WooCommerce Assign Past Orders استفاده کنید که سفارش‌های قدیمی رو بر اساس ایمیل به حساب‌ها وصل می‌کنن.

یه نکته درباره امنیت

بعضی‌ها می‌پرسن «این کد امنه؟ یعنی یکی می‌تونه با زدن ایمیل من، سفارشای منو ببینه؟»

جواب: نه. این کد فقط سفارش رو به حساب کاربری وصل می‌کنه. برای دیدن سفارش‌ها، طرف باید با رمز عبور وارد حساب بشه. کسی که ایمیل شما رو بزنه، فقط باعث می‌شه سفارشِ خودش بیفته تو پنل شما.

با این حال اگه سایتتون حساسه (مثلاً محصولات دانلودی گرون دارید)، بد نیست الزام لاگین برای خرید رو در نظر بگیرید.

ترکیب با ساخت خودکار حساب

اگه می‌خواید کاربرای واقعاً جدید هم خودکار حساب بگیرن، تو همون بخش تنظیمات حساب‌های کاربری، گزینه «ساخت خودکار حساب کاربری هنگام تسویه حساب» رو فعال کنید. اونوقت این کد و اون تنظیم با هم کامل می‌شن: کاربر قدیمی به حسابش وصل می‌شه، کاربر جدید حساب می‌گیره، و دیگه سفارش مهمان ندارید.

سوالات متداول

این کد روی سفارش‌های ثبت‌شده قبلی هم اثر داره؟

نه. فقط از لحظه‌ای که کد رو اضافه می‌کنید به بعد، سفارش‌های جدید به حساب‌های کاربری وصل می‌شن. برای سفارش‌های قدیمی باید یا دستی اقدام کنید یا از افزونه مخصوص استفاده کنید.

با آپدیت ووکامرس کد از بین می‌ره؟

نه. کد تو فایل پوسته یا افزونه Code Snippets ذخیره می‌شه، نه تو فایل‌های ووکامرس. با آپدیت پوسته ممکنه بپره (اگه پوسته فرزند نداشته باشید)، ولی آپدیت ووکامرس کاری باهاش نداره. هوک woocommerce_checkout_create_order هم سال‌هاست پایداره و بعید می‌دونیم حذف بشه.

امنیت سایت با این کد به خطر می‌افته؟

نه. کد فقط یه شناسه کاربری رو به سفارش می‌چسبونه و هیچ اطلاعات حساسی رو در معرض دید قرار نمی‌ده. دسترسی به سفارش‌ها همچنان نیازمند ورود با رمز عبوره.

اگه از بلاک چک‌اوت جدید ووکامرس استفاده کنیم چی؟

هوک woocommerce_checkout_create_order تو نسخه‌های جدید هم اجرا می‌شه، ولی اگه از بلاک چک‌اوت (Checkout Block) استفاده می‌کنید حتماً تست کنید. بعضی هوک‌های قدیمی تو حالت بلاک رفتار متفاوتی دارن.

اگه چند تا کاربر با یه ایمیل داشته باشیم چی؟

وردپرس اجازه نمی‌ده دو تا کاربر ایمیل یکسان داشته باشن، پس این حالت اصلاً پیش نمیاد.

جمع‌بندی

مشکل مهمان ثبت شدن سفارش‌ها یکی از اون ایرادهای ریزیه که تا وقتی سایتتون کوچیکه به چشم نمیاد، ولی هرچی فروشتون بیشتر می‌شه بیشتر اذیتتون می‌کنه. با پنج خط کدی که بالا گذاشتیم، ووکامرس یاد می‌گیره که قبل از مهمان زدن یه سفارش، اول ایمیل رو با لیست کاربرا چک کنه. نتیجه‌اش هم مشتری راضی‌تره، هم گزارش‌های دقیق‌تر، هم کار دستی کمتر برای شما.

فقط یادتون باشه بکاپ بگیرید و ترجیحاً از افزونه Code Snippets یا پوسته فرزند استفاده کنید. اگه سوالی داشتید یا جایی گیر کردید، تو کامنت‌ها بپرسید. اگه هم روش بهتری سراغ دارید، خوشحال می‌شیم بشنویم. موفق باشید. 🙂

نظر شما در این مورد چیه؟

  1. U6631۱۸ اردیبهشت ۱۴۰۳

    سلام وقت بخیر
    زمانی که کاربر بصورت مهمان خریدی رو انجام می ده و بعد از خرید در سایت ثبت نام می کنه با همون ایمیلی که خرید مهمان رو انجام داده در حساب کاربری ایجاد شده ، خرید یا دانلود های قبلی وجود نداره یعنی در واقع ووکامرس بر اساس اون ایمیل ادرس سابقه خرید ها رو اضافه نمی کنه
    آیا راه حلی برای این موضوع هست ؟
    ممنون از راهنمایی تون

  2. U341329۱۰ فروردین ۱۴۰۳

    چگونه بعد از آنکه کاربر ، گزینه پرداخت بعد از دریافت را در سبد خرید انتخاب کرد با عبارت: سفارش شما ثبت شد. همکاران با شما تماس می گیرند مواجه شود

  3. U17709۴ دی ۱۴۰۲

    سلام و درود به استاد عزیز
    نسخه جدید ووکامرس را که بروز میکنم خود ووکامرس بروز میشه اما پایگاه داده ووکامرس بروز نمیشه و اصلاً هوک آپدیت ووکامرس اجرا نمیشه و وقتی روی مشاهده پیشرفت مبزنیم هیچ دستوری اجرا نمیشه!
    دستورات زماندی شده ی دیگه اجرا میشن اما دستور بروزرسانی پایگاه داده ووکامرس در عملیات برنامه ریزی شده اصلاً اجرا نمیشه.
    خیلی درگیر این موضوع هستم اگه راهنمایی بفرمایید ممنون میشم.
    شرمنده، پستی در این مورد در میهن وردپرس ندیدم برای همین اینجا پیام فرستادم.

    • رضا راد۴ دی ۱۴۰۲

      سلام میتونه دلایل مختلفی داشته باشه. ولی در کل اگر مشکلی رو سایتتون ایجاد نکرده نیازی نیست حتما اجرا بشه.

      • U17709۴ دی ۱۴۰۲

        سلام مجدد استاد
        در آینده این موضوع اذیت میکنه چون نسخه دیتابیس و خود افزونه بهتره یکی باشه
        میتونید راهنمایی کنید از چی میتونه باشه؟ حس من اینه که یکی از جداول دیتابیس ووکامرس دچار مشکل شده یا پاک شده باشه
        آموزشی هست که من بتونم این مشکلمو رفع کنم؟ شما خودتون تا حالا به این مشکل برنخوردید؟ من منابع فارسی و انگلیسی زیادی سرچ کردم اما چیزی پیدا نکردم.
        میزنه که درحال بروزرسانی پایگاه داده در پس زمینه هستیم اما بعد چند دقیقه دوباره پیام بروزرسانی پایگاه داده ووکامرسو نمایش میده موقعی هم که میزنیم پیشرفتشو ببینیم میزنه woocommerce_run_update یافت نشد!
        اگه میتونید راهنمایی کنید که خیلی درگیرشم. سپاس

        • رضا راد۵ دی ۱۴۰۲

          مشکل که از schedule های سایت هست با crontrol میتونید چکش کنید.

  4. U317638۱ تیر ۱۴۰۲

    سلام می خواستم یک تجربه زا در اختیار همه بگزارم
    من ووکامرسم زمان ثبت سفارش توی تسویه حساب ارور internal server error را می داد من تمام روش های توی اینترنت و حتی سایت شما را رفتم اما جواب نداد حتی هاستینگ هم نتونست
    اما مشکلم با تغییر نسخه php حل شد نسخه ام روی 8.0 بود کردم 7.4 و مشکلم حلشد

  5. U317064۱۳ شهریور ۱۴۰۱

    سلام
    من نمیتونم سفارش ثبت کنم و قتی هم از طریق سبد خرید اطلاعات رو تکمیل میکنم و میزنم ثبت سفارش خطا میزنه
    خطاش هم اینه ( خطا در ذخیره سازی عملیات؛ خطای پایگاه داده
    لطفا اگه میشه جواب بدین

  6. U316384۲۶ مرداد ۱۴۰۱

    درود جناب راد
    2 سوال داشتم محبت کنید راهنمایی بفرمایید.

    اول: اگر خریدها بدون ایمیل و شماره موبایل انجام بشه چطور؟ (استفاده از پلاگین دیجیتس)
    دوم: اگر سفارش ها بصورت دستی انجام بشه چطور اون کاربر از حالت میهمان به کاربر مشتری تبدیل بشه.
    تشکر

    • U316384۲۶ مرداد ۱۴۰۱

      توضیحات کامل:

      یه سایتی داریم نیاز داریم همزمان بجز خرید آنلاین، سفارش های حضوری رو هم بصورت دستی (افزودن دستی سفارش) ثبت کنیم که موجودی کالای فروشگاهمون بهم نریزه.
      یه مشکلی دارم اون هم اینکه وقتی سفارش رو دستی ثبت میکنیم کاربر رو میهمان میذاره و به بخش کاربرهای سایت اضافه نمیشه که بتونیم بعدا از اطلاعات کاربر استفاده کنیم. روی روش ثبت نام با ایمیل راهکارهایی بدست اوردم که مشتری میهمان رو به کاربر تبدیل کنه اما ما ثبت ناممون خلاصه میشه به تلفن همراه و نام و ایمیل استفاده نمیکنیم (بخاطر افزونه دیجیتس)

      در بخش ووکامرس > مشتری ها هم میشه مشتری های میهمان رو خروجی گرفت اما چون از دیجیتس استفاده میکنیم اونجا شماره موبایل نمایش نداره ک خروجی بگیریم ازش استفاده کنیم.

      راهی هست این مشتری های مهمان تبدیل به کاربر بشن؟

      • رضا راد۳۰ مرداد ۱۴۰۱

        سلام راهی نیست به جز اینکه با یک پلاگین اختصاصی این کارو انجام بدید.

    • رضا راد۳۰ مرداد ۱۴۰۱

      درود
      ۱. باید کد رو تغییر بدید و از فیلد موبایل بگیرید
      ۲. یکم سخت شد. بهتره کد اختصاصی استفاده بشه برای این مورد همراه با ویرایش صفحه ویرایش سفارش

  7. U13744۲۰ تیر ۱۴۰۱

    سلام.
    من توی سایت نمی خوام افراد بدون اینکه عضو بشن خرید کنن، با برداشتن تیک این مورد توی ووکامرس وقتی مشتری اضافه به سبد رو می زنه و بعد تسویه حساب رو میزنه، به صفحه ای منتقل می شه که نوشته: برای تسویه حساب باید وارد شوید.
    چی کار کنم که به جای اینکه به این صفحه بیاد، مستقیم بره به صفحۀ ورود و ثبت نام؟

    • رضا راد۲۵ تیر ۱۴۰۱

      سلام میتونید خرید مهمان رو فعال کنید یا از ریدایرکت خودکار استفاده کنید که نیاز به تغییر برنامه‌نویسی و استفاده از توابع ووکامرس و وردپرس داره.

  8. U37282۱۹ بهمن ۱۴۰۰

    سلام دوتا سوال دارم :
    ۱- من برای ثبت نام بجای ایمیل از دیجیتس استفاده میکنم ، آیا این کد برای دیجیتس هم کار میکنه؟
    ۲- آیا با آپدیت قالب این کدها از بین نمیرن؟ چطوری یکبار برای همیشه این کدهارو استفاده کنم؟
    ممنون میشم راهنماییم کنید.

    • رضا راد۲۰ بهمن ۱۴۰۰

      سلام
      ۱. فکر نمیکنم
      ۲. بهتره توی چایلدتم اضافه بشه یا افزونه اختصاصی

  9. U25544۲۳ بهمن ۱۳۹۹

    عالی بود، سپاس

  10. U17441۲۱ بهمن ۱۳۹۹

    سلام. ۴ هفته پیش الکسای سایتم ۵۰ هزار بود. الآن شده ۷۷ هزار ! bizef .ir این آدرس سایتمه. چرا این طور شده؟ من مدام مقاله منتشر می‌کنم

    • رضا راد۲۱ بهمن ۱۳۹۹

      سلام تفاوتی بین الکسای ۵۰ هزار و ۷۷ هزار وجود نداره. باید بیشتر کار کنید و الکسای زیر ۲۰ هزار کسب کنید اونوقت می‌تونید بررسی کنید که الکسای شما افت کرده یا خیر

      • U27765۲۴ بهمن ۱۳۹۹

        سلام
        الکسای وبسایت من 25 هزار بود و ما شروع کردیم به تولید محتوا
        بعد طی 3 هفته رسید به 5 هزار – و یهو بعد چند هفته رفت 10 هزار !!
        الانم نزدیک 7 هزار شده
        علت این همه تغییر زیاد رتبه چی میتونه باشه ؟

        • رضا راد۲۵ بهمن ۱۳۹۹

          درود بر شما سرعت سایت شما تاثیر زیادی در رتبه الکسا داره. سرعت رو بررسی کنید.

          • U27765۲۵ بهمن ۱۳۹۹

            دقیقا تنها چیزی که تغییر کرده طی این دوره سرعت سایت بود!!
            دقت نکرده بودم اصلا 🤔
            واقعا ممنونم آقای حسینی راد :)))

  11. U17441۲۰ بهمن ۱۳۹۹

    سلام. خواهش می‌کنم انیمیشن‌های ورودی و خروجی خبردار رو حذف نکنید.
    با تشکر

    • رضا راد۲۱ بهمن ۱۳۹۹

      سلام این موضوع باعث حرکت کلی محتوای سایت موقع لود شدن میشه و کمی تجربه کاربری رو نامناسب جلوه میده

  12. U9919۲۰ بهمن ۱۳۹۹

    سلام و درود
    حالا اگه ایمیل اختیاری باشه و بخوایم این اتفاق برای شماره موبایل که الزامی هست بی افته باید چیکار کنیم؟

    • رضا راد۲۱ بهمن ۱۳۹۹

      درود بر شما
      کافیه از billing_email استفاده نکنید و به جاش فیلد موبایل رو وارد کنید.

      • U21662۲۹ فروردین ۱۴۰۰

        سلام ، خسته نباشید ، محتوا بسیار مفید بود، برای ایمیل تست کردم درست عمل میکرد، ولی برای شماره موبایل چون ما از افزونه دیجیتس استفاده میکنیم و ایمیل ضروری نیست ، با اینکه به جای biling-email طبق فرمایش شما از biling-phone استفاده کردم نتیجه ای نداشت و سفارش ثبت شده مهمان با یک شماره موبایل خاص در لیست سفارشات اکانت ساخته شده با اون شماره موبایل قرار نمیگیره مانند حالت ایمیل :(کد را به صورت زیر استفاده کردم)
        function mihanwp_set_customer_email($order,$data){
        $email = $data[‘billing_phone’];
        if(email_exists($email)){
        $user = get_user_by(’email’,$email);
        $order->set_customer_id($user->ID);
        }
        }
        add_action(‘woocommerce_checkout_create_order’,’mihanwp_set_customer_email’,10,2);
        آیا باید تغییررات دیگری هم انجام میدادم و یا چون از افزونه دیجیتس استفاده میکنیم نباید از billing_phone استفاده میکردم ؟! ممنون میشم راهنمایی کنین در این رابطه چون الان اکثر سایتهای فروشگاهی مبناشون شماره موبایل هست و کمتر از کاربرا ایمیل دریافت میکنن برای ثبت نام و خرید …
        حتی اگر افزونه ای هم باشه که به صورت خودکار مشتریان مهمان ما را به کاربر مشتری تبدیل کنه با همان شماره موبایل سفارش خوبه! (البته با همان اولویت شماره موبایل، ایمیل ندارن اکثر کاربرای ما) این مشکل رو برای ما حل کنه خوبه، معرفی کنین شما، با تشکر

        • رضا راد۲۹ فروردین ۱۴۰۰

          درود بر شما سپاس. شما باید بررسی کنید که تلفن ها در فرم ثبت سفارش از کاربر دریافت میشه. اگر بله درسته و به جای get_user_by باید از دریافت یوزر با تلفن استفاده کنید.

          • U310221۱۹ آذر ۱۴۰۰

            سلام
            اگه ممکنه لطفا یک تکه کد هم برای شماره موبایل در صفحه پرداخت قرار بدید چون الآن اکثرا از شماره موبایل استفاده میشه بجای ایمیل

  13. U28063۲۰ بهمن ۱۳۹۹

    سلام یک سوال داشتم شما هنوز هم برای آپدیت محصولاتتان در وبسایتتان از ایزی دیجیتال دانلود استفاده میکنید؟
    من از میهن پنل هم استفاده میکنم و میخوام آپدیت محصولات با همین ووکامرس صورت بگیرد لطفا راهنمایی کنید.

    • رضا راد۲۱ بهمن ۱۳۹۹

      درود بر شما ما از ووکامرس استفاده میکنیم در سیستم جدید

      • U28063۲۱ بهمن ۱۳۹۹

        سلام خوب چگونه آپدیت های محصولات رو تو میهن پنل با استفاده از ووکامرس نشون بدیم؟

        • رضا راد۲۱ بهمن ۱۳۹۹

          بستگی داره از چه افزونه‌ای برای آپدیت محصولات استفاده می‌کنید. باید کدش رو قرار بدید در میهن پنل

          • U28063۲۱ بهمن ۱۳۹۹

            با سلام من از همین ووکامرس فقط استفاده میکنم چه کدی قرار بدم که فایل جدیدی اگر در دوره اضافه کردم به اون صفحه هم تو میهن پنل اضافه بشه؟
            لطفا راهنمایی و کمک کنید و کد رو هم لطف کنید بگید چی بنویسم

            • رضا راد۲۱ بهمن ۱۳۹۹

              شما باید از افزونه‌های آموزش آنلاین در کنار ووکامرس استفاده کنید. کد خاصی نداره و هر افزونه‌ای که استفاده کنید کد خاص خودش رو داره. ما از افزونه اختصاصی برای اینکار استفاده می‌کنیم.

              • U28063۲۲ بهمن ۱۳۹۹

                با سلام خوب افزونه پیشنهادی شما چی هست؟
                لطفا راهنمایی کنید و بگویید
                چرا که سایت من فروش فایل آنلاین است و فایل هام باید آپدیت بشه
                تشکر از لطف شما

                • رضا راد۲۳ بهمن ۱۳۹۹

                  افزونه learnpress بسیار مناسب هست.

                  • U28063۲۳ بهمن ۱۳۹۹

                    تشکر از شما آقای رضا راد

                  • U28063۲۶ بهمن ۱۳۹۹

                    سلام خدمت شما
                    از همون ایزی دیجیتال دانلود بخوام استفاده کنم چجوریه؟
                    لطفا یک آموزش ازش بزارید ببینیم چجوری میتونیم با ایزی دیجیتال دانلود آپدیت محصولات رو بیاریم

                    • رضا راد۲۶ بهمن ۱۳۹۹

                      سلام در هر صورت باید پلاگین اختصاصی برای اتصال پلاگین اختصاصی خود به سیستم آپدیت بسازید.

                  • U28063۲۶ بهمن ۱۳۹۹

                    با سلام البته ایزی دیجیتال هم بدرد نمیخوره چون کاربر هم باید محصول ووکامرس رو بخره هم ایزی دیجیتال دانلود
                    لرن پرس هم که به کار ما نمیاد چون محتوای آموزشی تولید نمیکنیم لطفا کمکمون کنیم.
                    چرا افزونه آپدیت محصولات که اختصاصی طراحی کردید رو در اختیار ما خریدارانتان قرار نمیدیدی لطفا و لطفا راهنمایی کنید کمکامان کنید چون خیلی مهمه

                    • رضا راد۲۶ بهمن ۱۳۹۹

                      سلام. برای انتشار یک محصول باید به حجم بازار محصول توجه کنیم. اگر این مورد را منتشر کنیم علاوه بر مشکلات زیادی که برای راه‌اندازی خواهد داشت، حجم بازار بسیار کمی برای فروش محصول خواهیم داشت.

                    • U28063۲۶ بهمن ۱۳۹۹

                      با سلام خوب هستید؟
                      خوب میتونید راهنمایی کنید من الان چیکار کنم؟

                    • U28063۲ اسفند ۱۳۹۹

                      سلام آقای رضا راد یعنی هیچ افزونه ای برای آپدیت فایل ها در ووکامرس موجود نیست؟

                    • رضا راد۲ اسفند ۱۳۹۹

                      سلام توی سایت سرچ کنید آموزش ساخت افزونه رو قرار دادیم.

                    • U28063۲ اسفند ۱۳۹۹

                      منظورتون اینه افزونه اختصاصی باید بنویسیم؟

                    • رضا راد۳ اسفند ۱۳۹۹

                      بله

                • U27765۲۴ بهمن ۱۳۹۹

                  لرن دش هم عالیه کارش

  14. U28063۲۰ بهمن ۱۳۹۹

    با سلام خوب هستید؟
    من دامنه وبسایتم 17 حرفی است و ir هم هست.
    به نظر شما در آینده سئو وبسایتم با تکنیک های اصولی و درست خوب و اوکی میشه؟
    الان که سئو سایتم خیلی پیشرفت کرده و خیلی خوبه.
    اما در آینده میتونم سئو خیلی بهتری را با این دامنه 17 حرفی به علاوه ار که میشه 19 داشته باشم؟

    • رضا راد۲۰ بهمن ۱۳۹۹

      درود بر شما بله مشکلی در سئو نیست اما طول دامنه کمی زیاد هست.

      • U28063۲۰ بهمن ۱۳۹۹

        با سلام خدمت شما
        یعنی یک دامنه کم حرفی تر هم خریداری کنم؟

        • رضا راد۲۱ بهمن ۱۳۹۹

          سلام اگر سایت تازه راه اندازی شده دامنه را به دامنه کوتاه تری تغییر بدید

          • U28063۲۱ بهمن ۱۳۹۹

            سلام سایت تقریبا چند ماه هست اوردمش بالا و تو این چند ماه خیلی سئو سایتم رو افزایش دادم هم اسم سایت من که سرزمین وردپرس هست چندتا سایت دیگه هم بوده قبلا هم اسم سایتم و من تو این چندماه با حرکات اصولی سئو سایتم رو افزایش داده و از اونا جلو زدم
            چی فکر میکنید چیکار کنم؟

            • رضا راد۲۱ بهمن ۱۳۹۹

              هر تصمیمی خوبی‌ها و بدی‌هایی داره. باید این مورد رو خودتون تشخیص بدید که دامنه رو تغییر بدید یا خیر.

              • U28063۲۱ بهمن ۱۳۹۹

                با سلام بله قطعا همینطور ولی تغییر تغییر هم نمیخوام بدم مثلا میخوام وقتی دامنه جدید که خریدم مثلا این دامنه ها ریدایرکت بشن مثلا دامنه الان من اینه میخوام دامنه جدید بخرم و اون رو اصلی قرار بدم و وقتی این دامنه بلند جستجو شد اون دامنه کوتاه بالا بیاد
                اگر از ریدایرکت استفاده کنم بازم ممکن هست که در سئو اختدال ایجاد شود؟

                • رضا راد۲۱ بهمن ۱۳۹۹

                  در هر صورت روی سئو تاثیر خواهد داشت. شما باید دامنه خود را ریدایرکت ۳۰۱ کنید تا تاثیر کمتری در سئو داشته باشه

                  • U28063۲۲ بهمن ۱۳۹۹

                    بله قطعا
                    ولی از چه دامنه ای به چه دامنه ای ؟
                    یعنی دامنه بلند ریدایرکت به کوتاهه بشه یا کوتاه به بلنده؟

                    • رضا راد۲۳ بهمن ۱۳۹۹

                      دامنه فرعی به دامنه اصلی. باید ببینید میخواید کدوم یکی دامنه اصلی شما باشه

                • U27765۲۴ بهمن ۱۳۹۹

                  سلام
                  میتونید برای دسترسی بهتر میتونید دامنه کوتاه تری بخرید و ریدایرکت کنید به دامنه اصلی
                  اینجوری ریسک کمتری داره
                  مثلا میتونید دامنه sarzaminwp رو بخرید و ریدایرک کنید تا کاربر راحت تر ادرس رو بزنه

            • U15690۲۲ بهمن ۱۳۹۹

              استفاده از اسم wordpress توی دامنه باعث میشه تا شرکت وردپرس اون دامنه رو توی یه مدت زمانی ازتون بگیره و توی قوانینشم هست پس شما هرچه زود تر اسم سایتتون رو عوض کنید یا به جای وردپرس از wp استفاده کنید

              • رضا راد۲۳ بهمن ۱۳۹۹

                این موضوع مدتها بحث بود اما ما سالها تست کردیم و مشکلی نداشت.

                • U27765۲۴ بهمن ۱۳۹۹

                  آقای علی حاجی محمدی گفتن که دامنه ای داشتن که عبارت wordpress رو داشت و وردپرس دامنه رو گرفت ازشون که !

                  • رضا راد۲۵ بهمن ۱۳۹۹

                    اطلاعی از این موضوع ندارم اما ما چند سال با چنین دامنه‌ای کار کردیم و مشکلی نداشتیم. شاید دلیلش شباهت بسیار زیاد دامنه با سایت وردپرس دات کام بوده باشه و حس کردن داره سو استفاده از نام وردپرس میشه

پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرس
پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرسآنلاین و پاسخگوی شما هستیم.آنلاین

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.