Pengalihan WooCommerce Setelah Keluar [Panduan Utama]

Diterbitkan: 2022-01-10

Pengalihan WooCommerce setelah logout Pengalihan WooCommerce setelah logout dapat dibuat menggunakan kode di postingan ini untuk mengarahkan ulang pelanggan WooCommerce ke halaman atau postingan tertentu atau URL eksternal setelah mereka logout. Pada artikel ini, saya ingin menunjukkan cara membuat redirect ini dengan kode. Jika Anda melewatkan tutorial saya sebelumnya, saya mengilustrasikan cara membuat shortcode halaman logout WooCommerce, yang bisa menjadi tempat yang baik untuk memulai sebelum Anda membuat pengalihan logout WooCommerce.

Ada plugin yang dapat digunakan untuk membuat pengalihan keluar WooCommerce tetapi tidak sebaik yang seharusnya; Saya sedang mengerjakan solusi yang lebih baik yang akan membantu Anda mengelola pengalihan WooCommerce setelah logout seperti plugin yang saya buat untuk WooCommerce Logout After Checkout.

Jika Anda ingin menjadi pengguna awal, silakan hubungi saya, sehingga saya dapat menambahkan Anda ke dalam daftar karena plugin akan siap dalam 2 minggu dari hari ini.

Untuk posting ini, saya ingin membagikan pendekatan kode yang dapat Anda gunakan untuk membuat pengalihan keluar WooCommerce yang efisien tetapi plugin akan memiliki beberapa opsi bersyarat yang memperluas opsi pengalihan default seperti yang saya capai di Pengalihan WooCommerce setelah plugin checkout.

Bagian Pengalihan Logout WooCommerce -Skim dan Lewati ke Bagian

Di sebagian besar proyek klien saya, saya mengalami kesulitan mendapatkan pengalihan keluar untuk bekerja di situs WooCommerce. Untuk alasan ini, saya memutuskan untuk menyusun panduan utama membuat pengalihan WooCommerce setelah panduan logout.

Saya harap ini bisa menjadi tempat yang bagus bagi pengguna yang paham teknologi dan tidak paham teknologi untuk menemukan solusi untuk membuat opsi pengalihan keluar WooCommerce terbaik untuk proyek mereka.

Karena ini bukan posting blog biasa, ini panjang dan membutuhkan lebih banyak waktu untuk membaca dan memahami setiap detailnya. Saya ingin membantu Anda menelusuri bagian yang berbeda sehingga Anda dapat dengan cepat memilih solusi yang Anda butuhkan untuk proyek Anda.

Daftar isi

  1. Homepage Redirect – Setelah Logout Redirect Ke Homepage Di Woocommerce
  2. Pengalihan Halaman Saat Ini - Tombol Keluar Woocommerce Dan Arahkan Ulang Ke Halaman Saat Ini
  3. Halaman Tertentu Dengan ID Redirect – Halaman Pengalihan Logout Woocommerce
  4. Pengalihan Peran Pelanggan – Pengalihan Keluar Pelanggan Woocommerce
  5. Pengalihan Halaman Sebelumnya- Pengalihan Login Woocommerce Ke Halaman Sebelumnya
  6. Pengalihan Halaman Akun Saya – Woocommerce Pengalihan Logout Akun Saya
  7. Pengalihan URL Eksternal – Fungsi Pengalihan Logout Woocommerce Php Snippet
  8. Perbaiki Kesalahan Pengalihan Logout – Pengalihan Logout Woocommerce Tidak Berfungsi
  9. URL Pengalihan Logout WP – URL Keluar Woocommerce
  10. Plugin Pengalihan Logout Woocommerce
  11. Membuat Pengalihan Logout Di WordPress – Fungsi Inti
  12. Pengalihan Login WooCommerce : woocommerce_login_redirect Hook
  13. Fungsi Logout WordPress – wp_logout_url()
  14. Filter WordPress Hook logout_redirect
  15. Login_redirect Filter WordPress Hook
  16. Pengalihan Multisite WooCommerce Setelah Keluar
  17. Kait Filter: allow_redirect_hosts
  18. Fungsi Pengalihan WordPress: Pengalihan wp_
  19. Fungsi Pengalihan WordPress: wp_safe_redirect()
  20. Kesimpulan

Pengalihan WooCommerce Setelah Keluar

pengalihan keluar woocommerce Secara default, WooCommerce setelah logout, registrasi, dan login mengarahkan pengguna ke "akun saya". Perilaku ini tidak diinginkan terutama di situs web yang diarahkan untuk meningkatkan penjualan mereka.

Tiga tindakan manajemen pengguna yang paling umum di situs WooCommerce Anda meliputi:

  • pendaftaran pengguna
  • Login Pengguna
  • pendaftaran pengguna
  • Edit Profil Pengguna
  • Logout Pengguna

Masing-masing tindakan ini dapat ditingkatkan untuk tidak hanya memudahkan pengguna bernavigasi dengan lancar, tetapi juga meningkatkan prospek penjualan bagi pelanggan baru dan lama. URL atau tautan keluar Woocommerce secara default terletak di halaman Akun Saya dan sebagian besar pemilik toko WooCommerce ingin mengubah pengalihan keluar di halaman Akun saya untuk mengarahkan ulang ke halaman tertentu atau corong penjualan WooCommerce.

Bagaimana Cara Mengarahkan Logout dari halaman Akun Saya?

Salah satu pertanyaan paling umum tentang logout WooCommerce adalah bagaimana membuat logout otomatis dari halaman Akun Saya dan mengarahkan ulang ke situs web lain atau ke halaman internal.

Ini adalah pertanyaan yang akan dibahas dan diselesaikan dalam posting ini, pada akhir tutorial ini, Anda harus dengan nyaman membuat pengalihan logout WooCommerce kustom bahkan dengan sedikit atau tanpa pengetahuan pengkodean sebelumnya.

pengalihan woocommerce setelah keluar dari Halaman Akun Saya

Mengapa Membuat Pengalihan Logout WooCommerce

Situs web eCommerce yang baik harus memanfaatkan semua peluang untuk mengarahkan pengguna ke halaman yang dapat meningkatkan penjualan dan konversi setelah setiap tindakan – masuk, keluar, keranjang, checkout, pendaftaran, dll.

Ini tentang membuat corong penjualan WooCommerce yang bagus untuk mempromosikan produk lain penjualan silang, penjualan turun, dan produk terkait lainnya atau produk terlaris.

Pengalihan logout WooCommerce memungkinkan Anda meningkatkan rasio konversi penjualan dengan mengalihkan pelanggan setelah logout ke halaman arahan penjualan atau halaman pengalihan corong WooCommerce yang strategis — alih-alih mengarahkan pelanggan ke halaman default "akun saya".

Tutorial ini akan menunjukkan kepada Anda cara mengubah pengaturan default pengalihan WooCommerce setelah logout dan mengarahkan pengguna ke URL khusus seperti "saluran penjualan", "penawaran khusus", "katalog", halaman sebelumnya, halaman arahan khusus, atau tautan eksternal apa pun yang cocok untuk meningkatkan penjualan dan konversi.

Dalam posting ini, saya akan berbagi dengan Anda tip singkat tentang cara membuat pengalihan kustom setelah keluar dari WooCommerce seperti yang saya bagikan sebelumnya cara membuat pengalihan WooCommerce setelah checkout. Idealnya, logout default WooCommerce tidak semulus yang seharusnya. Ini menunjukkan pesan konfirmasi yang mengganggu sejumlah pengguna.

Saya telah membahas sebelumnya cara menghapus pesan konfirmasi logout WooCommerce yang memudahkan pelanggan Anda untuk secara otomatis logout dari situs WooCommerce Anda tanpa muncul pesan konformasi.

Saya juga membagikan cuplikan kode logout WooCommerce yang dapat Anda perluas dalam tutorial ini agar lebih efisien dengan menambahkan opsi pengalihan, seperti yang saya lakukan di plugin pengalihan setelah checkout WooCommerce yang menampilkan opsi pengalihan bersyarat.

Ubah Pengalihan Keluar WooCommerce ubah pengalihan keluar woocommerce

Untuk mengubah pengalihan keluar WooCommerce adalah peningkatan penting lainnya dari pengalaman keluar pelanggan yang harus Anda pertimbangkan, seperti yang saya ilustrasikan cara menambahkan tautan keluar WooCommerce ke menu.

Jadi, mari kita pelajari lebih dalam tentang cara membuat opsi pengalihan keluar WooCommerce terbaik yang dapat segera Anda terapkan di toko Anda untuk meningkatkan pengalaman pengguna.

Opsi ini sederhana karena kita perlu menggunakan filter untuk memeriksa peristiwa logout saat itu terjadi.

Ketika logout WooCommerce terjadi, kita dapat mengaitkan kait ini – woocommerce_login_redirect kemudian meneruskan fungsi panggilan balik dengan logika pengalihan kita ke halaman tempat kita ingin mengarahkan pengguna setelah logout.

Jika Anda tidak terbiasa dengan kait tindakan dan kait filter WooCommerce atau WordPress, tutorial tentang apply_filters dan kait do_action ini bisa menjadi tempat yang baik untuk mulai membiasakan diri dengan filter dan kait.

Itu selalu merupakan praktik yang baik sebelum Anda mulai membuat fungsi pengalihan keluar WooCommerce, Anda harus memeriksa apakah pengguna sudah masuk. Sekarang mari kita uraikan berbagai opsi yang dapat Anda gunakan untuk membuat pengalihan keluar WooCommerce.

Masing-masing fungsi ini menggunakan kait tindakan dan fungsi bawaan WooCommerce dan WordPress yang dibahas secara rinci di bagian lain dari tutorial ini.

Homepage Redirect – Setelah Logout Redirect ke Homepage di Woocommerce

Salah satu pengalihan WooCommerce paling umum setelah logout adalah ke halaman beranda. Secara default, WooCommerce dialihkan ke halaman Akun Saya setelah logout selesai.

Jika Anda ingin mengarahkan pengguna ke beranda, Anda harus mempertimbangkan untuk menambahkan kode ini ke file functions.php Anda dari tema WooCommerce yang aktif.

Cukup salin kode ini ke file functions.php tema Anda dan uji untuk melihat apakah pengguna WooCommerce diarahkan ke halaman beranda setelah logout.

Redirect ke Beranda setelah Cuplikan Keluar

Anda juga dapat menambahkan cuplikan kode ini ke file plugin dan itu akan bekerja dengan mulus.

 add_action('wp_logout','njengah_homepage_logout_redirect');

fungsi njengah_homepage_logout_redirect(){

    wp_redirect( home_url() );

    keluar;

}

Cara Kerja Kode Pengalihan

Ada dua fungsi dan satu kait tindakan yang digunakan dalam kode ini untuk membuat pengalihan WooCommerce setelah logout seperti pada kode di atas. Mari kita lihat dengan cermat peran masing-masing fungsi dan kait ini:

Kait: wp_logout

Kode ini menggunakan kait tindakan wp_logout yang telah dibahas secara rinci dalam artikel ini di bawah bagian – kait WordPress – wp_logout. Idealnya, ini adalah kait logout WordPress default yang diaktifkan setelah logout dieksekusi.

Fungsi : wp_redirect()

Dalam hal ini jika Anda melihat fungsi callback jika menggunakan fungsi wp_redirect() yang juga telah dijelaskan secara rinci di bagian fungsi wp_redirect WordPress.

Fungsi: home_url()

Fungsi terakhir yang digunakan dalam fungsi panggilan balik adalah home_url() , ini adalah fungsi WordPress yang mengembalikan url beranda situs saat ini.

home_url( string $path = '', string|null $scheme = null )

Misalnya Anda dapat menampilkan URL beranda situs saat ini menggunakan fungsi home_url() sebagai berikut:

 $url = home_url();

gema $url;

Jadi dalam kasus pengalihan WooCommerce ini setelah keluar, itu akan mengembalikan URL situs saat ini dan menambahkannya sebagai string ke fungsi wp_redirect() .

Agar kami memahami cara kerja pengait pengalihan keluar WooCommerce saat kami menerapkannya dalam kode Anda, kami perlu melihat masing-masing fungsi WordPress default ini dan peran yang dimainkannya dalam membuat pengalihan.

Pengalihan Halaman Saat Ini – Tombol Keluar Woocommerce dan Pengalihan ke Halaman Saat Ini

Pengalihan WooCommerce paling umum kedua setelah keluar adalah pengalihan ke halaman saat ini setelah pengguna keluar. Ini penting ketika Anda ingin pengguna tetap berada di halaman yang sama ketika mereka keluar.

Dalam hal ini kita perlu mengetahui halaman pengguna saat ini dan menerapkannya ke logika pengalihan keluar WooCommerce.

Untuk membuat pengalihan WooCommerce ke halaman saat ini setelah peristiwa logout, kita perlu menggunakan get_permalink() untuk memberi tahu kita halaman saat ini dan kemudian menerapkannya ke fungsi panggilan balik logout.

Dalam hal ini Anda harus menambahkan cuplikan kode berikut ke functions.php atau file plugin Anda untuk menjalankan pengalihan WooCommerce setelah keluar ke halaman saat ini.

 fungsi njengah_redirect_current_page_after_logout( $logout_url, $redirect ){

       kembali $logout_url . '&redirect_to=' . get_permalink();

}

add_filter( 'logout_url', 'njengah_redirect_current_page_after_logout', 10, 2 );

Cara Kerja Kode

Kode ini terdiri dari logout_url kait filter dan fungsi panggilan balik memiliki fungsi get_permalink() WordPress yang menetapkan halaman saat ini untuk pengguna frontend dan menggunakannya untuk mengembalikan URL logout.

Filter: logout_url()

Dalam hal ini kami telah menggunakan logout_url yang merupakan inti lain dari filter logout WordPress dan WooCommerce yang telah dibahas secara rinci di bagian bawah fungsi WordPress logout_url .

Kode ini mungkin tidak berfungsi untuk semua pengguna dan kemungkinan akan gagal untuk pengguna di backend admin. Ini adalah pengalihan yang sesuai setelah keluar untuk pelanggan di halaman Akun Saya tetapi tidak untuk peran lain.

Untuk membuatnya berfungsi untuk pengguna di backend juga, kita perlu mengganti get_permalink() dengan nilai kueri HTTP yang mewakili halaman saat ini.

PHP Super Global $_SERVER['HTTP_HOST']

Jadi dalam hal ini kita perlu menambahkan super global $_SERVER['HTTP_HOST'] ini sebagai alternatif dari get_permalink() . $_SERVER adalah variabel super global PHP yang berisi informasi tentang header, jalur, dan lokasi skrip.

Super global $_SERVER['HTTP_HOST'] mengembalikan header Host dari permintaan saat ini. Oleh karena itu, ini membantu kami untuk mendapatkan halaman saat ini sehingga kami dapat menerapkannya ke URL pengalihan WooCommerce setelah logout. Kode baru yang berfungsi untuk semua pengguna adalah sebagai berikut:

 fungsi njengah_redirect_current_page_after_logout( $logout_url, $redirect ){

      kembali $logout_url . '&redirect_to=http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

}

add_filter( 'logout_url', 'njengah_redirect_current_page_after_logout', 10, 2 );

Anda sekarang dapat membuat tombol untuk menutup tautan redirect dengan mengikuti tutorial yang saya bagikan sebelumnya tentang cara membuat tombol logout WooCommerce.

Pengalihan Halaman Tertentu – Halaman Pengalihan Logout Woocommerce (Berdasarkan ID)

Dalam beberapa kasus, Anda mungkin ingin mengarahkan pengguna ke halaman tertentu setelah mereka keluar. Halaman dapat ditambahkan ke logika pengalihan keluar WooCommerce menggunakan id halaman.

Dalam hal ini Anda perlu mengetahui ID halaman sehingga Anda meneruskannya dalam fungsi redirect. Anda dapat mencapai pengalihan keluar WooCommerce ke halaman tertentu dengan id menggunakan cuplikan kode berikut.

 add_action('wp_logout','njengah_specific_page_logout_redirect');

fungsi njengah_specific_page_logout_redirect(){

    wp_redirect( get_permalink($pageId) );

    keluar;

}

Cara Kerja Kode

Kode ini menggunakan kait tindakan wp_logout dan dalam fungsi panggilan balik kami memiliki get_permalink() dengan variabel $pageID yang harus diganti dengan ID halaman tempat Anda ingin mengarahkan ulang pengguna setelah checkout.

Jika Anda tidak yakin tentang ID halaman, Anda dapat menggunakan posting ini yang saya tulis tentang cara mendapatkan ID halaman di WordPress.

Fungsi WooCommerce : wc_get_page_id()

Anda juga dapat menggunakan nama halaman tempat Anda ingin mengarahkan ulang pengguna bersama dengan fungsi wc_get_page_id() WooCommerce seperti pada cuplikan kode di bawah ini:

 add_action('wp_logout','njengah_specific_page_logout_redirect');

fungsi njengah_specific_page_logout_redirect(){

       wp_redirect( get_permalink( wc_get_page_id( 'toko' ) ) );

      keluar;

}

Fungsi wc_get_page_id() mengambil id halaman dan biasanya digunakan untuk myaccount, edit_address, shop, cart, checkout, pay, view_order, terms, dan return -1 jika tidak ada halaman yang ditemukan.

Pengalihan Peran Pelanggan – Pengalihan Keluar Pelanggan Woocommerce

Pengalihan WooCommerce lain setelah skenario logout adalah di mana Anda ingin mengarahkan pengguna berdasarkan peran. Anda mungkin ingin mengarahkan pelanggan ke halaman tertentu setelah mereka keluar, bukan pengalihan Akun Saya default setelah keluar.

Dalam hal ini Anda dapat menjalankan pengalihan setelah keluar untuk peran pelanggan saja atau peran lain atau sekelompok peran menggunakan cuplikan kode yang dibagikan di bawah ini:

 if( is_user_logged_in() ) { // periksa apakah ada pengguna yang login       

    $pengguna = wp_get_current_user(); // mendapatkan & menyetel pengguna saat ini

          $roles = ( array ) $user->roles; // mendapatkan peran

           // $peran[0]; // Mengembalikan satu peran

            //mengembalikan $peran; // mengembalikan array peran

             // Buat perbandingan di sini 

              if($roles[0] == 'pelanggan'){

                 // Jalankan pengalihan jika peran pengguna saat ini sama dengan pelanggan

                    add_action('wp_logout','njengah_specific_page_logout_redirect');

                       fungsi njengah_specific_page_logout_redirect(){

                        wp_redirect( get_permalink($pageId) );

                             keluar;

                   }

           }

 }

Cara Kerja Kode

Kami telah mulai dengan memeriksa apakah pengguna sudah masuk seperti yang saya jelaskan di posting sebelumnya tentang cara mengetahui apakah pengguna WordPress sudah masuk.

Dapatkan Peran Pengguna

Langkah kedua adalah mendapatkan peran pengguna saat ini di WordPress menggunakan fungsi wp_get_current_user() dan menuntut peran pengguna saat ini.

Bandingkan dan Jalankan Pengalihan Jika Peran Sesuai dengan Pelanggan

Langkah ketiga adalah sekarang membuat perbandingan peran yang diperoleh pada langkah sebelumnya dengan peran pelanggan dan jika peran itu cocok, Anda sekarang menambahkan tindakan pengalihan dan fungsinya.

Anda dapat mengganti peran dengan peran lain termasuk peran khusus. Anda juga dapat mengubah halaman redirect dengan meneruskan ID halaman yang berbeda di get_permalink() .

Pengalihan Halaman Sebelumnya- Pengalihan Logout Woocommerce ke Halaman Sebelumnya

Anda dapat membuat pengalihan WooCommerce setelah keluar ke halaman sebelumnya menggunakan sesi. Dalam hal ini Anda perlu membuat sesi dan menambahkannya ke fungsi dan menggunakannya dalam logika untuk membuat pengalihan setelah keluar ke halaman sebelumnya.

Anda dapat menggunakan cuplikan kode di bawah ini untuk membuat pengalihan keluar WooCommerce ke halaman sebelumnya:

 // Mulai sesi global untuk menyimpan url referensi
fungsi start_session() {
     sesi_mulai();
}

add_action('init', 'start_session', 1);

// Dapatkan url referensi dan simpan

fungsi redirect_url() {
    if (is_user_logged_in()) {
        $_SESSION['referer_url'] = wp_get_referer();
    } kalau tidak {
        session_destroy();
    }

}
add_action( 'template_redirect', 'redirect_url' );

//pengalihan keluar

fungsi njengah_logout_redirect() {

    if (isset($_SESSION['referer_url'])) {

        wp_redirect($_SESSION['referer_url']);

    } kalau tidak {

        wp_redirect(home_url());

    }

}

add_filter('wp_logout', 'njengah_logout_redirect', 1100, 2);

Cara Kerja Kode

Kode ini menggunakan sesi PHP untuk membuat sesi dan menyimpan URL halaman saat ini dan dalam fungsi pengalihan kami menguji URL sesi yang ditetapkan – $_SESSION['referer_url'] .

Jika sudah diatur, kita buat redirect ke halaman itu seperti pada redirect logout lain yang kita bahas sebelumnya.

Pengalihan Halaman Akun Saya – Woocommerce Pengalihan Logout Akun Saya

Pengalihan logout WooCommerce dari halaman Akun Saya adalah salah satu pertanyaan paling umum tentang logout WooCommerce.

Ini tidak berbeda dengan pengalihan keluar lainnya, Anda dapat menambahkan pengalihan keluar di halaman Akun Saya menggunakan cuplikan kode di bawah ini:

 add_action('wp_logout','njengah_my_account_page_logout_redirect');

fungsi njengah_my_account_page_logout_redirect(){

       wp_redirect( get_permalink($pageId) );

                keluar;

}

Anda dapat mengubah nilai variabel $pageID di fungsi get_permalink() agar sesuai dengan ID halaman dari halaman redirect atau posting dan ini akan bekerja dengan mulus.

Pengalihan URL Eksternal- Fungsi Pengalihan Logout Woocommerce Php Snippet:

Jika Anda ingin mengarahkan pengguna ke URL eksternal setelah mereka keluar dari toko WooCommerce Anda, Anda dapat melakukannya menggunakan cuplikan yang ditambahkan ke fungsi tema Anda atau di plugin khusus.

Cuplikan php fungsi redirect logout WooCommerce yang dapat ditambahkan ke file functions.php untuk membuat redirect setelah logout adalah sebagai berikut:

 add_action('wp_logout','njengah_redirect_after_logout');

fungsi njengah_redirect_after_logout(){

  wp_redirect( $url);

  keluar();

}

Cukup tambahkan cuplikan kode ini di functions.php dan ganti variabel $url dengan URL pengalihan masing-masing dalam tanda kutip.

Misalnya, jika Anda ingin mengarahkan pengguna ke URL eksternal setelah mereka keluar dan URL eksternalnya adalah http://example.com , Anda dapat mengganti variabel $url dengan URL lengkap seperti pada kode di bawah ini:

 add_action('wp_logout','njengah_redirect_after_logout');

fungsi njengah_redirect_after_logout(){

    wp_redirect('http://contoh.com');

    keluar();

}

URL Pengalihan Logout WP – URL Keluar Woocommerce

Jika Anda ingin membuat tombol logout WooCommerce dan meletakkannya di templat khusus atau di halaman lain, ada baiknya Anda mengetahui URL pengalihan logout WP yang dapat Anda tambahkan dengan mudah di tombol atau tautan apa pun.

Berikut ini adalah URL redirect logout WP yang dapat diubah ke halaman lain dengan mengubah parameter 'my-account'”

 wp_logout_url(

    get_permalink( wc_get_page_id( 'akun saya' ) )

 );

Anda juga dapat memiliki URL eksternal di URL pengalihan keluar WooCommerce sebagai berikut:

 wp_logout_url(

   'http://contoh.com/'

);

Anda juga dapat menambahkan fungsi WordPress ke URL pengalihan logout WP sebagai berikut:

 wp_logout_url(

    rumah_url()

);

URL pengalihan logout WP ini dapat ditambahkan dalam templat khusus dan juga dapat digunakan dalam kode pendek atau tombol untuk menampilkan opsi logout di tempat-tempat yang bukan merupakan lokasi default untuk tombol logout, seperti widget, footer, menu bilah atas dan banyak lagi.

Perbaiki Kesalahan Pengalihan Logout: Pengalihan Logout Woocommerce Tidak Berfungsi

Jika Anda telah menyesuaikan pengalihan keluar WooCommerce dan tidak berhasil, mungkin ada bug dalam kode Anda atau salah satu alasan berikut.

Prioritas Kait

Langkah pertama adalah memeriksa prioritas add_action() atau add_filter() Anda dibandingkan dengan hook WordPress lainnya. Ini adalah salah satu penyebab paling umum dari kesalahan pengalihan keluar.

Semakin tinggi prioritas kail, semakin awal pemuatan terjadi. Jika kedua pengait memiliki prioritas yang sama, pengait yang ditempatkan di atas pengait lainnya dimuat terlebih dahulu. Menyesuaikan prioritas tindakan atau kait filter dapat menjadi tempat yang baik untuk memulai proses debug Anda.

Kesalahan Kode – Kesalahan Sintaks

Langkah kedua Anda perlu memeriksa apakah semua kode memiliki kesalahan dan kesalahan umum adalah kesalahan sintaks. Mungkin saat Anda mengedit kode, Anda bisa lupa menempatkan tanda kutip penutup atau tanda kurung.

Counter memeriksa kode dan sebaiknya tambahkan kode ke pemeriksa kesalahan sintaks PHP.

Lebih baik jika Anda terbiasa dengan alat seperti Visual Studio atau IDE seperti Netbeans karena alat ini dapat dengan cepat membantu Anda memilih kesalahan sintaks dalam kode Anda.

Kode Ditambahkan ke File yang Salah

Penyebab umum lain dari kesalahan pengalihan keluar WooCommerce yang tidak berfungsi adalah ketika Anda memiliki kode yang benar tetapi Anda menambahkannya di tempat yang salah. Dalam hal ini jika Anda menambahkan kode ke tema, kode tersebut harus ditambahkan secara ketat ke file functions.php.

Saat menambahkan kode ini ke plugin, Anda harus berhati-hati untuk tidak menambahkannya di dalam kelas yang tidak dipakai. Sebaiknya tambahkan ke file dasar plugin dan juga perbaiki perubahan apa pun yang mungkin diperlukan untuk memastikan kode sesuai dengan konteks struktur file plugin khusus Anda.

Konflik Plugin atau Tema

Dalam kebanyakan kasus, ada plugin atau tema yang mengontrol pengalihan login dan logout di WooCommerce. Plugin ini dapat bentrok yang mengarah ke kesalahan pengalihan keluar.

Jika Anda mengalami kesalahan logout pengalihan WooCommerce, Anda dapat memulai dengan menonaktifkan semua plugin dan menggunakan tema WordPress default untuk memeriksa apakah kesalahan tersebut disebabkan oleh plugin atau konflik tema.

Plugin Pengalihan Logout Woocommerce

Akhirnya, tidak ada yang lebih mudah untuk menambahkan pengalihan WooCommerce setelah logout selain plugin yang dikodekan dengan baik dengan fitur yang tepat, pengalaman pengguna yang baik, dan dukungan kelas dunia. Selama bertahun-tahun, saya telah memperbaiki ratusan masalah logout, login, dan registrasi di WooCommerce dan WordPress secara umum.

Dalam beberapa minggu terakhir, saya telah mengumpulkan semua pengalaman dan pelajaran saya tentang pengalihan dan logout WooCommerce. Saya telah membuat URL pengalihan keluar WooCommerce yang luar biasa yang terdiri dari fitur-fitur berikut:

Fitur Pengalihan Logout

  • Pengalihan WooCommerce setelah logout ke halaman mana pun – pilih halaman dari daftar drop-down
  • Pengalihan WooCommerce setelah logout ke produk mana pun – pilih produk dari daftar drop-down
  • Pengalihan WooCommerce setelah keluar ke satu pos mana pun – pilih pos dari daftar tarik-turun
  • Pengalihan WooCommerce setelah keluar ke kategori produk apa pun – pilih kategori produk dari daftar tarik-turun
  • Pengalihan WooCommerce setelah keluar ke halaman saat ini
  • Pengalihan WooCommerce setelah keluar ke halaman sebelumnya
  • Pengalihan WooCommerce setelah keluar ke URL Eksternal
  • Pengalihan WooCommerce setelah logout berdasarkan peran
  • Pengalihan WooCommerce setelah logout berdasarkan riwayat pembelian (cocok untuk penawaran khusus)
  • WooCommerce memaksa logout setelah checkout

Fitur Pengalihan Masuk

  • Pengalihan WooCommerce setelah masuk ke halaman mana pun – pilih halaman dari daftar drop-down
  • Pengalihan WooCommerce setelah masuk ke produk tunggal apa pun – pilih produk dari daftar tarik-turun
  • Pengalihan WooCommerce setelah masuk ke satu pos mana pun – pilih pos dari daftar tarik-turun
  • Pengalihan WooCommerce setelah masuk ke kategori produk apa pun – pilih kategori produk dari daftar tarik-turun
  • Pengalihan WooCommerce setelah masuk ke halaman saat ini
  • Pengalihan WooCommerce setelah masuk ke halaman sebelumnya
  • Pengalihan WooCommerce setelah masuk ke URL Eksternal
  • Pengalihan WooCommerce setelah login berdasarkan peran
  • Pengalihan WooCommerce setelah login berdasarkan riwayat pembelian (cocok untuk penawaran khusus)

WooCommerce Redirect setelah plugin Login & Logout (WRAL) akan dirilis dalam beberapa minggu mendatang. Jika Anda ingin menjadi pengguna awal jangan sampai ketinggalan karena peluncuran akan datang dengan diskon 70%.

Anda dapat bergabung dengan daftar 100 pengguna awal pertama dengan menghubungi saya segera. Itu akan dirilis pada 2 November 2020 .

Membuat Pengalihan Logout Di WordPress – Fungsi Inti

Setelah melihat cara cepat untuk menambahkan cuplikan untuk membuat pengalihan WooCommerce setelah keluar, ada baiknya untuk menyoroti fungsi dan kait logout WordPress default dan menjelaskan secara detail untuk pengembang yang membaca panduan ini untuk memahami cara kerja pengalihan ini.

Fungsi dan kait tindakan ini dapat berguna untuk membuat pengalihan WooCommerce setelah keluar. Secara umum Anda dapat membuat pengalihan keluar WooCommerce menggunakan kait dan fungsi berikut:

  • fungsi wp_logout_url()
  • kait tindakan wp_logout
  • filter logout_redirect

Saya ingin menjelaskan masing-masing fungsi ini dan bagaimana Anda dapat menggunakannya untuk membuat pengalihan WooCommerce setelah checkout dan mengapa Anda mungkin ingin menggunakan salah satunya.

Penting juga untuk menyoroti cara Anda dapat membuat pengalihan login WooCommerce menggunakan filter. Ada fungsi yang berguna untuk membuat pengalihan login di WooCommerce juga. Mari kita mulai dengan kait pengalihan login yang sangat berguna untuk membuat pengalihan login di WooCommerce.

Pengalihan Login WooCommerce : woocommerce_login_redirect Hook

Ini adalah kait WooCommerce khusus yang memungkinkan kita untuk mengontrol fungsi pengalihan login di WooCommerce. Ini mirip dengan fungsi logout WordPress default yang diterapkan dalam membuat redirect WooCommerce setelah logout. Penggunaan dasarnya adalah sebagai berikut:

apply_filters( 'woocommerce_login_redirect', $redirect, $user );

Seperti yang Anda lihat, dibutuhkan 2 parameter dan parameternya adalah sebagai berikut:

Parameter Keterangan Contoh Penggunaan
$redirect Ini adalah halaman redirect di mana pengguna akan mendarat setelah login.

Ini dapat berguna dalam mengubah pengalihan WooCommerce default setelah login untuk memungkinkan pengguna mendarat ke halaman tertentu setelah login.

add_filter('woocommerce_login_redirect', 'login_redirect')

Anda dapat menambahkan kait filter dan dalam fungsi panggilan balik Anda dapat meneruskan logika pengalihan sebagai berikut:

function login_redirect($redirect_to){
return home_url();
}

Seperti yang Anda lihat, saya telah menambahkan parameter $redirect_to dan mengembalikan URL redirect untuk mengarahkan pengguna ke beranda setelah login.

$user Ini adalah pengguna tempat tindakan pengalihan diterapkan.

Ini bisa sangat berguna ketika Anda ingin membuat pengalihan setelah login untuk pengguna tertentu.

Kait: woocommerce_login_redirect Tidak Berfungsi

Kode ini dapat digunakan dalam tema dan kode plugin tetapi Anda perlu memahami prioritas untuk menghindari penembakan ke awal atau akhir yang akan menyebabkan skenario umum woocommerce_login_redirect tidak berfungsi.

Anda juga perlu mencari tahu alasan lain yang dapat menyebabkan woocommerce_login_redirect tidak berfungsi. Yang menarik adalah plugin lain yang memiliki fungsi serupa atau sama yang berfungsi sebelum kode Anda diaktifkan.

Jadi, jika Anda mengetahui bahwa woocommerce_login_redirect tidak berfungsi., hal pertama yang harus diperiksa adalah prioritas. Contoh kasus, Anda mungkin memiliki dua cuplikan kode ini:

# Prioritas Lebih Rendah

add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 1100, 2 );

# Prioritas Lebih Tinggi

add_filter( 'woocommerce_login_redirect', 'njengah_login_redirect', 10, 2 );

Seperti yang Anda lihat dalam kedua kasus, nomor prioritasnya berbeda, aturan dasarnya adalah semakin kecil angkanya, semakin tinggi prioritasnya – artinya nomor itu dimuat terlebih dahulu.

Ketika Anda menggunakan fungsi ini di tempat lain di tema Anda atau plugin lain dan Anda mencoba untuk membuat ulang WooCommerce redirect setelah fungsi login atau logout, Anda perlu memperhatikan prioritasnya. Ini adalah solusi untuk memperbaiki masalah woocommerce_login_redirect tidak berfungsi.

Fungsi Logout WordPress – wp_logout_url()

Fungsi ini bertanggung jawab untuk membuat URL logout di WordPress.

Ini membantu pengembang dan pengguna WordPress untuk dengan cepat membuat URL logout yang dapat ditambahkan ke tautan atau tombol dan saya ilustrasikan dalam artikel ini – cara membuat URL logout WooCommerce .

WooCommerce memperluas fungsionalitas dengan memiliki titik akhir URL yang memainkan peran penting dalam membantu pengembang dan pengguna membuat halaman keluar WooCommerce tanpa pengkodean apa pun.

Jika Anda ingin memahami secara mendalam proses logout WooCommerce dan WordPress, ada baiknya Anda memulai dengan mengevaluasi fungsi wp_logout_url() .

Ini adalah fungsi khusus yang akan Anda temukan di beberapa tema dan plugin WordPress dan merupakan ide bagus untuk melihat sekilas apa yang terjadi di balik tenda.

Penggunaan dasar dari fungsi tersebut adalah sebagai berikut:

wp_logout_url( string $redirect = '' )

Seperti yang Anda lihat, fungsi mengambil satu parameter yaitu string dan berikut adalah detail parameternya:

Parameter Keterangan Contoh Penggunaan
$redirect Ini adalah parameter string dan opsional untuk menambahkannya, Anda dapat membiarkannya kosong dan fungsinya akan berfungsi.

Namun ini berguna dalam kasus di mana Anda ingin menambahkan URL pengalihan ke halaman tertentu.

Jadi dalam hal ini parameter $redirect adalah URL halaman redirect, tujuan tempat semua pengguna yang menggunakan fungsi ini dalam konteks ini harus mendarat.

Anda juga dapat meneruskan fungsi lain sebagai parameter yang secara ketat mengembalikan string karena wp_logout_url() hanya menggunakan string sebagai parameter.

Anda dapat menggunakan fungsi ini bersama dengan tautan sebagai berikut:

<a href="<?php echo wp_logout_url(); ?>">Logout</a>

Anda dapat menggunakan fungsi ini dan meneruskan fungsi lain sebagai parameter yang mengembalikan string URL pengalihan sebagai berikut:

<a href="<?php echo wp_logout_url( home_url() ); ?>">Logout</a>

<a href="<?php echo wp_logout_url( get_permalink() ); ?>">Logout</a>

Jika Anda ingin memahami fungsinya lebih jauh, ada baiknya melihat kode yang ditentukan di inti WordPress. Kode fungsi inti ini adalah sebagai berikut:

 fungsi wp_logout_url( $redirect = '' ) {
    $args = array();
    jika ( ! kosong( $redirect ) ) {
        $args['redirect_to'] = urlencode( $redirect );
    }
 
    $logout_url = add_query_arg( $args, site_url( 'wp-login.php?action=logout', 'login' ) );
    $logout_url = wp_nonce_url( $logout_url, 'log-out' );
 
    /**
     * Filter URL logout.
     *
     * @sejak 2.8.0
     *
     * @param string $logout_url URL logout yang dikodekan HTML.
     * @param string $redirect Jalur untuk mengarahkan ulang saat logout.
     */
    return apply_filters( 'logout_url', $logout_url, $redirect );
}

Kait Tindakan: wp_logout

Ini adalah kait tindakan yang diaktifkan ketika pengguna telah keluar. Ini memainkan peran penting dalam membuat redirect setelah fungsionalitas logout. Penggunaan dasar dari fungsi ini adalah sebagai berikut:

do_action( 'wp_logout', int $user_id )

Seperti yang Anda lihat, dibutuhkan satu parameter dan detail parameternya adalah sebagai berikut:

Parameter Keterangan Contoh Penggunaan
$user_id Ini adalah ID pengguna yang telah logout. add_action('wp_logout','logout_redirect');

Dalam hal ini kami telah menambahkannya sebagai kait tindakan dan kami dapat meneruskan pengalihan kami setelah logika logout dalam fungsi panggilan balik sebagai berikut:

function logout_redirect(){

wp_redirect( home_url() );

exit;

}

Jadi dalam hal ini kami mengarahkan pengguna setelah logout ke halaman beranda.

Fungsi-fungsi ini berguna ketika Anda ingin mengontrol pengalihan pengguna setelah mereka masuk atau keluar.

Filter WordPress Hook logout_redirect

Filter hook lain yang dapat Anda gunakan untuk membuat redirect setelah logout di WooCommerce adalah Filter Hook logout_redirect. Kait filter ini berfungsi seperti fungsi wp_logout_url() atau kait aksi wp_logout.

Ini adalah filter WordPress dasar yang dirancang untuk membantu membuat pengalihan WordPress atau WooCommerce setelah logout. Penggunaan dasarnya adalah sebagai berikut:

apply_filters( 'logout_redirect', string $redirect_to, string $requested_redirect_to, WP_User $user )

Seperti yang Anda lihat, ia memiliki tiga parameter dan parameter tersebut dapat dijelaskan secara rinci sebagai berikut:

Parameter Keterangan
$redirect_to Ini adalah URL tujuan pengalihan dan harus berupa string, misalnya, http://example.com
$requested_redirect_to Ini adalah URL tujuan pengalihan yang diminta yang diteruskan sebagai parameter dan juga harus berupa string seperti parameter pertama.
$user Ini adalah objek pengguna – objek WP_User dari pengguna yang telah keluar.

Anda dapat membuat redirect WordPress berbasis filter setelah logout menggunakan logout_redirect sebagai berikut:

 add_filter( 'login_redirect', 'njengah_logout_redirect', 10, 3 );

function njengah_logout_redirect( $lokasi, $request, $user ) {

  global $pengguna;

if ( isset( $user->roles ) && is_array( $user->roles ) ) {

   if ( in_array( 'pelanggan', $user->roles ) ) {

       kembali home_url();

          } kalau tidak {

        kembali $redirect_to;

      }

    }

   kembali;

}

Login_redirect Filter WordPress Hook

Penting juga untuk menunjukkan bahwa ada filter serupa untuk login – login_redirect bekerja dengan cara yang sama seperti filter logout_redirect. Sebenarnya, penggunaannya serupa dan dilengkapi dengan 3 parameter dan ekspresi umumnya adalah sebagai berikut:

apply_filters( 'login_redirect', string $redirect_to, string $requested_redirect_to, WP_User|WP_Error $user )

The parameters are similar expect the last parameter that has two user object options as you will see in the detailed description below:

Parameter Keterangan
$redirect_to This is the redirect destination URL and it must be a string, for example, http://example.com
$requested_redirect_to This is the requested redirect destination URL that is passed as a parameter and it must also be a string just like the first parameter.
$user This is the user object – WP_User object of the user who has been logged in if the login was successful but for unsuccessful login the WP_Error object is represented by this parameter

As you can see there are several ways you can use to create a WordPress or WooCommerce logout redirect.

In a quick summary we have highlighted the three most important hooks you should consider using for creating the redirect after logout. These hooks include:

  • Default WordPress logout_redirect – using filter to create redirect after logout
  • Action hook wp_logout – fired after the logout and thus can be used to create redirect.
  • WordPress logout function wp_logout_url() – WordPress default function that retrieves the logout URL and this can be useful in adding a redirect since it takes one parameter for the redirect path.

WooCommerce Multisite Redirect After Logout

When you are creating a redirect after logout in WooCommerce the wp_logout hook may fail to work when you have a multisite. In this case you need a little creativity to control how to create the WooCommerce redirect after logout.

In fact in a multisite set up WordPress logout function requires you to filter the allowed URLs for redirect and this can easily be executed using the allowed_redirect_hosts filter.

It helps to understand how this filter hook works so that you can use it in the WooCommerce multisite redirect after checkout. So let's briefly look at this filter.

Filter Hook: allowed_redirect_hosts

This is a filter hook that filters all the allowed hosts to apply redirect to. So in simple terms it checks the redirect URLs and vets them. The basic usage of this filter is as follows:

apply_filters( 'allowed_redirect_hosts', string[] $hosts, string $host )

As you can see in the expression above, it takes two parameter and they can be explained in details as follows:

Parameter Keterangan Usage Example(s)
$hosts (string[]) This is simply an array with all the allowed host names add_filter( 'allowed_redirect_hosts', 'njengah_allow_parent_redirect' );

function njengah_allow_parent_redirect( $allowed ) {

$allowed[] = 'example.com'; // Multisite parent

return $allowed;

}

<a href="<?php echo wp_logout_url( 'http://example.com' ); ?>">Logout</a>

$host (string) This is the host name of the redirect destination.

This can be left empty.

You can add more hosts to the callback function and come up with code like this:

add_filter( 'allowed_redirect_hosts', 'njengah_allow_parent_redirect' );

function njengah_allow_parent_redirect( $allowed ) {
    $diizinkan = array(
    'blog.contoh.com',
    'codex.example.com',
     );
    return array_merge( $hosts, $allowed );
}

Ini hanya melayani tujuan memvalidasi URL pengalihan yang diizinkan yang merupakan tambahan penting untuk pengalihan WooCommerce multisitus setelah keluar karena dalam kebanyakan kasus pengalihan wp_logout default akan gagal tanpa pemfilteran host pengalihan.

Fungsi Pengalihan WordPress: Pengalihan wp_

Saat Anda membuat redirect di WooCommerce atau WordPress seperti yang saya jelaskan di posting tentang cara membuat redirect setelah checkout di WooCommerce, Anda memerlukan fungsi wp_redirect() .

Memahami peran fungsi ini sangat penting dalam membuat pengalihan WooCommerce setelah checkout karena ini adalah fungsi inti yang bertanggung jawab untuk menjalankan pengalihan di WordPress dan WooCommerce. Mari kita uraikan secara singkat cara kerjanya dan parameter yang diperlukan. Penggunaan umum fungsi wp_redirect() adalah sebagai berikut:

wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

Seperti yang Anda lihat, fungsi ini membutuhkan tiga parameter dan dapat dijelaskan secara rinci sebagai berikut:

Parameter Keterangan
$location Ini adalah jalur atau URL tempat mengarahkan pengguna. Itu harus berupa string dan diperlukan agar fungsi berfungsi.
$status Ini adalah kode status respons HTTP yang harus diterapkan ke pengalihan ini dan ini adalah bilangan bulat dan opsional untuk menggunakannya.
Misalnya, Anda dapat menambahkan 301 untuk redirect permanen atau Anda dapat membiarkannya sebagai nilai default yaitu 302 yang berarti dipindahkan sementara.
$x_redirect_by Ini adalah aplikasi yang melakukan pengalihan dan ini secara default adalah WordPress dan seharusnya jarang disetel karena kami membuat pengalihan WooCommerce setelah keluar yang berada dalam konteks WordPress.

Catatan

Penting untuk dipahami bahwa ketika Anda menggunakan fungsi wp_redirect(), tit tidak keluar dengan sendirinya. Oleh karena itu penting untuk selalu menambahkan exit setelah fungsi karena exit di PHP digunakan untuk menghentikan skrip yang sedang berjalan setelah baris kode sebelumnya dieksekusi. Jadi cara terbaik untuk menggunakan fungsi wp_redirect adalah sebagai berikut:

 wp_redirect( $url );

keluar

Anda juga dapat membuat pengalihan bersyarat menggunakan fungsi wp_redirect dengan if statement sebagai berikut:

 jika ( wp_redirect( $url ) ) {

   keluar;

}

Fungsi ini dapat digunakan bersama dengan kait template_redirect seperti pada kode di bawah ini:

 fungsi njengah_wp_redirect_example() {

    if ( is_user_logged_in() && is_page( $id ) ){

        wp_redirect( get_permalink( $id ) );

        keluar;

    }

}

add_action( 'template_redirect', 'njengah_wp_redirect_example' );

Seperti yang Anda lihat pada kode di atas, ia dapat mengambil fungsi sebagai parameter asalkan fungsi mengembalikan string untuk parameter $location seperti halnya get_permalink( )

Fungsi Pengalihan WordPress: wp_safe_redirect()

wp_safe_redirect() adalah fungsi pengalihan WordPress kedua yang mungkin berguna untuk menjalankan pengalihan WooCommerce setelah logout. Fungsi ini berfungsi seperti fungsi wp_redirect() tetapi memiliki verifikasi tambahan untuk URL pengalihan.

Dalam fungsi wp_redirect parameter $location tidak diverifikasi tetapi dalam fungsi wp_safe_redirect() , parameter $location diperiksa untuk memastikan apakah itu adalah host yang diizinkan.

Itulah perbedaan antara dua fungsi redirect. Penggunaan umum fungsi redirect ini mirip dengan wp_redirect dan ekspresi umumnya adalah sebagai berikut:

wp_safe_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

Seperti yang Anda lihat, parameternya sama:

Parameter Keterangan
$location Ini adalah jalur atau URL tempat mengarahkan pengguna. Itu harus berupa string dan diperlukan agar fungsi berfungsi.
$status Ini adalah kode status respons HTTP yang harus diterapkan ke pengalihan ini dan ini adalah bilangan bulat dan opsional untuk menggunakannya.
Misalnya, Anda dapat menambahkan 301 untuk redirect permanen atau Anda dapat membiarkannya sebagai nilai default yaitu 302 yang berarti dipindahkan sementara.
$x_redirect_by Ini adalah aplikasi yang melakukan pengalihan dan ini secara default adalah WordPress dan seharusnya jarang disetel karena kami membuat pengalihan WooCommerce setelah keluar yang berada dalam konteks WordPress.

Fungsi ini memungkinkan pengembang plugin untuk mengatur atau menghapus daftar host yang diizinkan dan jika host tidak ada dalam daftar host yang diizinkan, pengalihan gagal dan default ke wp-admin.

Sama seperti fungsi wp_redirect , wp_safe_redirect tidak keluar secara otomatis dan juga mengharuskan Anda untuk menambahkan exit seperti pada cuplikan kode di bawah ini:

 wp_safe_redirect( $url );

keluar;

Anda juga dapat menggunakannya dengan pernyataan bersyarat seperti pada contoh sebelumnya:

 if ( wp_safe_redirect( $url ) ) {

    keluar;

}

Kesimpulan

Dalam posting ini, saya menguraikan langkah demi langkah cara Anda dapat membuat berbagai pengalihan WooCommerce setelah opsi logout. Saya mengilustrasikan dengan contoh kode cara membuat logout redirect WordPress atau WooCommerce menggunakan berbagai fungsi dan kait yang tersedia dari inti WordPress.

Dalam ringkasan singkat untuk meringkas apa yang kita bahas; cara membuat redirect setelah logout ke:

  • Pengalihan keluar halaman saat ini
  • Pengalihan keluar halaman sebelumnya
  • Pengalihan keluar beranda
  • Pengalihan keluar halaman tertentu
  • Pengalihan keluar URL eksternal

Saya harap panduan ini memberi Anda tempat yang bagus untuk memulai saat membuat pengalihan keluar di WooCommerce. Jika Anda ingin berbagi umpan balik atau berkontribusi untuk membuat panduan ini lebih baik dan bahkan menunjukkan kesalahan atau kesalahan, jangan ragu untuk menghubungi saya. Jika Anda menyukai panduan ini, Anda mungkin juga ingin melihat panduan lain yang saya tulis tentang cara membuat pengalihan WooCommerce setelah pembelian.

Artikel Serupa

Daftar Plugin WooCommerce Terbaik