ووکامرس : دسترسی پرداخت سفارش، بدون وارد شدن به حساب کاربری

Published by axmin on

برخی از افزونه ها مانند پرداخت “واریز” و “اشتراک” برای تکمیل سفارش WooCommerce در انتظار ، مشتریان را به صفحه “پرداخت برای سفارش” می فرستند. در موارد خاص ، مشتری نیز مجبور به ورود به سیستم می شود و این واقعاً بر نرخ تبدیل فروش تأثیر می گذارد – به جای فرم تسویه حساب ، مشتریان این اعلان را مشاهده می کنند: “لطفاً برای ادامه فرم پرداخت به حساب خود وارد شوید”.

دسترسی پرداخت سفارش، بدون وارد شدن به حساب کاربری

در اینجا یک قطعه سریع آورده شده است تا مطمئن شوید مشتریان در صفحه “پرداخت برای سفارش” مجبور نیستند وارد سیستم شوند تا بتوانند بلافاصله پرداخت را انجام دهند. عملکرد WooCommerce مورد بحث wc_customer_has_capability است ، و خوشبختانه ما می توانیم این را با فیلتر user_has_cap نادیده بگیریم. لذت بردن!

add_filter( 'user_has_cap', 'ej_order_pay_without_login', 9999, 3 );
 
function ej_order_pay_without_login( $allcaps, $caps, $args ) {
   if ( isset( $caps[0], $_GET['key'] ) ) {
      if ( $caps[0] == 'pay_for_order' ) {
         $order_id = isset( $args[2] ) ? $args[2] : null;
         $order = wc_get_order( $order_id );
         if ( $order ) {
            $allcaps['pay_for_order'] = true;
         }
      }
   }
   return $allcaps;
}

0 Comments

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

fa_IRفارسی