Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Kupası
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

WordPress’te Formlar için Gezinmeyi Onayla Açılır Penceresi Nasıl Gösterilir

Bir sayfayı yorumunuzu göndermeden veya yarım doldurulmuş bir formla yanlışlıkla kapatmak can sıkıcıdır. Son zamanlarda, kullanıcılarımızdan biri bize okuyucularına bir gezinme onayı açılır penceresi göstermenin mümkün olup olmadığını sordu.

Bu küçük açılır pencere kullanıcıları uyarır ve yanlışlıkla yarım doldurulmuş ve gönderilmemiş formları bırakmalarını önler. Kullanıcı deneyimini iyileştirmek ve ziyaretçilerin bir şeye sıfırdan başlamak zorunda kalmasını önlemek için iyi bir yoldur.

Bu makalede, WordPress formları için gezinme açılır penceresini nasıl onaylayacağınızı göstereceğiz.

Confirm navigation popup when user leaves a form unsubmitted

Gezinmeyi Onayla Açılır Penceresi Nedir?

Bir kullanıcının blogunuza yorum yazdığını varsayalım. Zaten birkaç satır yazdılar, ancak dikkatleri dağıldı ve yorum göndermeyi unuttular. Şimdi, eğer tarayıcılarını kapatırlarsa, yorum kaybolacaktır.

Gezinmeyi onayla açılır penceresi onlara yorumlarını tamamlama şansı verir.

Bu özelliği WordPress yazı editörü ekranında çalışırken görebilirsiniz. Kaydedilmemiş değişiklikleriniz varsa ve sayfadan çıkmaya veya tarayıcıyı kapatmaya çalışırsanız, bir uyarı açılır penceresi görürsünüz.

Unsaved changes warning popup in WordPress post editor

Bu uyarı özelliğini WordPress yorumlarına ve sitenizdeki diğer formlara nasıl ekleyebileceğimizi görelim:

WordPress’te Gönderilmemiş Formlar için Gezinmeyi Onayla açılır penceresini göster

Bu eğitim için özel bir eklenti oluşturacağız, ancak endişelenmeyin, web sitenize yüklemek için bu eğitimin sonunda eklentiyi de indirebilirsiniz.

Ancak, kodu daha iyi anlamak için kendi eklentinizi oluşturmayı denemenizi isteyeceğiz. Bunu önce yerel bir kurulumda veya bir hazırlık sitesinde yapabilirsiniz.

Hadi başlayalım.

Öncelikle, bilgisayarınızda yeni bir klasör oluşturmanız ve adını confirm-leaving koymanız gerekir. confirm-leaving klasörünün içinde başka bir klasör oluşturmanız ve adını js koymanız gerekir.

Şimdi Notepad gibi bir düz metin düzenleyicisi açın ve yeni bir dosya oluşturun. İçine aşağıdaki kodu yapıştırın:

[php]
<?php
/**
 * Confirm Leaving
 * Plugin Name: Confirm Leaving
 * Plugin URI:  https://www.wpbeginner.com
 * Description: This plugin shows a warning to users when try they forget to hit submit button on a comment form.
 * Version:     1.0.0
 * Author:      WPBeginner
 * Author URI:  https://www.wpbeginner.com
 * License:     GPL-2.0+
 * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
 */

function wpb_confirm_leaving_js() { 

     wp_enqueue_script( 'Confirm Leaving', plugins_url( 'js/confirm-leaving.js', __FILE__ ), array('jquery'), '1.0.0', true );
}
add_action('wp_enqueue_scripts', 'wpb_confirm_leaving_js');
[/php]

Bu PHP işlevi, web sitenizin ön ucuna basitçe bir JavaScript dosyası ekler.

Devam edin ve bu confirm-leaving.php dosyasını ana confirm-leaving klasörünün içine kaydedin.

Şimdi, bu eklentinin yüklediği JavaScript dosyasını oluşturmamız gerekiyor.

Yeni bir dosya oluşturun ve bu kodu içine yapıştırın:

[javascript]
jQuery(document).ready(function($) { 

$(document).ready(function() {
    needToConfirm = false;
    window.onbeforeunload = askConfirm;
});

function askConfirm() {
    if (needToConfirm) {
        // Put your custom message here
        return "Your unsaved data will be lost.";
    }
}

$("#commentform").change(function() {
    needToConfirm = true;
});

 })
[/javascript]

Bu JavaScript kodu, kullanıcının yorum formunda kaydedilmemiş değişiklikleri olup olmadığını algılar. Kullanıcı sayfadan uzaklaşmaya veya pencereyi kapatmaya çalışırsa, bir uyarı açılır penceresi gösterecektir.

Bu dosyayı js klasörünün içine confirm-leaving.js olarak kaydetmeniz gerekir.

Her iki dosyayı da kaydettikten sonra, klasör yapınız bu şekilde görünmelidir:

Plugin file structure

Şimdi, bir FTP istemcisi kullanarak WordPress sitenize bağlanmanız gerekir. WordPress dosyalarını yüklemek için FTP’nin nasıl kullanılacağına ilişkin kılavuzumuza bakın.

Bağlandıktan sonra, confirm-leaving klasörünü web sitenizdeki /wp-contents/plugins/ klasörüne yüklemeniz gerekir.

Uploading plugin files to your WordPress site

Bundan sonra, WordPress yönetici alanına giriş yapmanız ve Eklentinin sayfasını ziyaret etmeniz gerekir.

Yüklü eklentiler listesinde ‘Confirm Leaving’ eklentisini bulun ve altındaki ‘etkinleştir’ bağlantısına tıklayın.

Activate plugin

Hepsi bu kadar. Artık web sitenizdeki herhangi bir gönderiyi ziyaret edebilir, yorum formunun herhangi bir alanına bir metin yazabilir ve ardından göndermeden sayfadan ayrılmayı deneyebilirsiniz.

Kaydedilmemiş değişikliklerin bulunduğu bir sayfadan ayrılmak üzere olduğunuzu bildiren bir açılır pencere görüntülenir.

popup notification warning user about unsaved changes

WordPress’te Diğer Formlara Uyarı Ekleme

WordPress sitenizdeki herhangi bir formu hedeflemek için aynı kod tabanını kullanabilirsiniz. Burada, size bir iletişim formunu hedeflemek için kullanmanın bir örneğini göstereceğiz.

Bu örnekte, bir iletişim formu oluşturmak için WPForms eklentisini kullanıyoruz. Web sitenizde farklı bir iletişim formu ek lentisi kullanıyorsanız talimatlar aynı olacaktır.

İletişim formunuzu eklediğiniz sayfaya gidin. Fareyi iletişim formunuzdaki ilk alanın üzerine getirin, sağ tıklayın ve ardından tarayıcı menüsünden ‘İncele’yi seçin.

Finding form ID

<form> etiketi ile başlayan satırı bulun. Form etiketinde ID niteliğini bulacaksınız.

Bu örnekte, formumuzun ID’si wpforms-form-170‘tir. ID özelliğini kopyalamanız gerekir.

Şimdi confirm-leaving.js dosyasını düzenleyin ve #commentform‘dan sonra ID niteliğini ekleyin.

Formunuzun kimliğini #commentform olarak virgülle ayırdığınızdan emin olun. Ayrıca formunuzun ID özelliğine önek olarak bir # işareti eklemeniz gerekecektir.

Kodunuz şimdi şöyle görünecektir:

[javascript]
jQuery(document).ready(function($) { 

$(document).ready(function() {
    needToConfirm = false;
    window.onbeforeunload = askConfirm;
});

function askConfirm() {
    if (needToConfirm) {
        // Put your custom message here
        return "Your unsaved data will be lost.";
    }
}

$("#commentform,#wpforms-form-170").change(function() {
    needToConfirm = true;
});

 })
[/javascript]

Değişikliklerinizi kaydedin ve dosyayı web sitenize geri yükleyin.

Şimdi, iletişim formunuzun herhangi bir alanına herhangi bir metin girebilir ve ardından formu göndermeden sayfadan ayrılmayı deneyebilirsiniz. Kaydedilmemiş değişiklikleriniz olduğuna dair bir uyarı içeren bir açılır pencere görünecektir.

Ayrılmayı onayla eklentisini buradan indirebilirsiniz. Yalnızca yorum formunu hedeflemektedir, ancak eklentiyi diğer formları hedefleyecek şekilde düzenlemekten çekinmeyin.

Hepsi bu kadar; umarız bu makale WordPress formları için gezinme açılır penceresini onaylamanıza yardımcı olmuştur. Ayrıca iş siteleri için olmazsa olmaz WordPress eklentileri ve araçları yazımıza göz atmak veya blog trafiğinizi nasıl artıracağınıza dair nihai kılavuzumuzu okumak isteyebilirsiniz.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Açıklama: İçeriğimiz okuyucu desteklidir. Bu, bazı bağlantılarımıza tıklarsanız komisyon kazanabileceğimiz anlamına gelir. WPBeginner'ın nasıl finanse edildiğini, neden önemli olduğunu ve nasıl destek olabileceğinizi görün. İşte editoryal sürecimiz.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Ultimate WordPress Araç Kiti

Araç setimize ÜCRETSİZ erişim sağlayın - her profesyonelin sahip olması gereken WordPress ile ilgili ürün ve kaynaklardan oluşan bir koleksiyon!

Reader Interactions

20 yorumBir Cevap Bırakın

  1. Syed Balkhi

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Igor

    Tried to use your code in bbpress forum. Unfortunately no popup message appears after user dose not post his comment. Tried all variations of changing id in JS file but still nothing appears.

  3. Bob Garrett

    Further to my previous query I have now tried using the form’s parent div id and modified the code. This almost works but…

    The text shown by the pop-up is not the text entered in the code.

    Even if the form is completed and submit hit, then going to another page still results in the warning.

    How can I resolve this?

  4. Tom Kelley

    Have tried this vvvvv to no avail. Working with Gravity Forms. All else works well, but the warning still comes up when hitting the submit button on a completed form. Any advice?

    WPBeginner Support
    Nov 27, 2016 at 6:52 am

    Hi Bonnie,

    We tested the plugin with WPForms and it worked. You will need to edit the confirm-leaving.js file and replace #commentform with the wpforms container div id. Typically it is wpforms-12 where 12 is the ID of your form. You can also see it using the inspect element tool in your browser.

    • Bonnie Ramthun

      I’m still trying to figure out how to make sure the popup DOESN’T appear when the user presses the “Submit” button. The confirm leaving popup shouldn’t appear if the user has entered all the information required, but this code makes it pop up every time.

      I would so appreciate the help, if there is a solution available.

  5. Swayam Dhawan

    I Need the same function when someone navigate from particular page in website and while click on stay , they must navigate to home page of the website.

    waiting for the response.

  6. Bonnie Ramthun

    I am so happy for your wonderful confirm navigation code! I need it desperately because many of my clients users can’t get it through their head that they need to press the “Submit” button on the form.

    The code works perfectly, except for one problem. When I press the “Submit” button on my WPForms form, the confirm navigation code pops up. I would like the “confirm navigation” to happen only when the user doesn’t press the “Submit” button. I can’t figure out how to do this. Can you help?

    • WPBeginner Support

      Hi Bonnie,

      We tested the plugin with WPForms and it worked. You will need to edit the confirm-leaving.js file and replace #commentform with the wpforms container div id. Typically it is wpforms-12 where 12 is the ID of your form. You can also see it using the inspect element tool in your browser.

      Yönetici

  7. Will C

    I have two separate multi-page gravity forms on my site. When this plugin is active, I get a confirmation popup when clicking “Next Step” on one of the forms (undesired), but not the other. Are you aware of any issues with gravity forms and “window.onbeforeunload”? Thanks

    • Nipa Sarker

      Having same issues with buddy press create group steps.

      • Nipa Sarker

        I ma using the code for buddy-press multi step create group from.It is working fine except while clicking on the next step button or save button it is showing the same alert.
        I ma using the form id “#create-group-form” instead of the #commentform

  8. Luis Zarza

    Hi, nice post!

    It helped a lot. But your solution won’t work while logged in. It only works for users that fill in the form and are logged out. I need it also to work for logged in users, please!
    Could you provide a solution for that?

    Thanks.

    • Luis Zarza

      Sorry, it does actually works when you create the plugin. At first I did it only throwing the JS to the page I wanted without creating the plugin, because I didn’t want the script to be loaded on all the pages of my site.

  9. Alain Aubry

    Hi

    Contact Form 7 does not use an ID in their form, how can I make this work?

    • WPBeginner Support

      Contact Form 7 uses an ID with all the forms. The line that contains form ID will look something like this:

      <div role="form" class="wpcf7" id="wpcf7-f85-p11-o1" lang="en-US" dir="ltr">
      

      In this example, the form’s ID attribute is wpcf7-f85-p11-o1. Hope this helps.

      Yönetici

  10. Betty L Van Fossen

    I have two problems. One I get these pop up in my mail all the time,q it’s aggravating. I’m 89 in yrs.therefore a little short on patience and I start using my pointer to fast hitting other things, so I get myself in lots of problems. Two –guess(I know) I have to many cookies they say. What are the cookies –how do I eleminate them? What do you mean subscribe without commenting. I prefer the e-mail. O.K..to personal and meaningful conversation.

    • Betty L Van Fossen

      Does Pop Ups work the same for e-mail as WordPress for removing?

        • Betty L Van Fossen

          Safari said I could not get in cause I had to many cookies. In the meantime I was on my e-mail and the pop ups came on, while on my e-mail they are always popping up. I got on google and asked for help on cookies and pop ups and gave me lots to choose from. Now word press got in here, what is word press. I’m not going to write a book,just NEED HELP. Answer by e-mail. I’m turning you off now I’m really tired now.

      • Betty L Van Fossen

        I will wait for your reply in my e-mail as I’m tired so will turn off now.

Bir Cevap Bırakın

Yorum bırakmayı seçtiğiniz için teşekkür ederiz. Lütfen tüm yorumların yorum poli̇ti̇kasi uyarınca denetlendiğini ve e-posta adresinizin yayımlanmayacağını unutmayın. Ad alanında anahtar kelime KULLANMAYIN. Kişisel ve anlamlı bir sohbet edelim.