• 15-04-2023, 02:36:57
    #1
    Merhaba, kullanıcılar form doldurup ilgili ürün listesine gidiyor. Sepet sayfasına ise üye girişi yapmadan giremiyor.
    function wpse_131562_redirect() {
        if (
            ! is_user_logged_in()
            && (is_woocommerce() || is_cart() || is_checkout())
        ) {
            // feel free to customize the following line to suit your needs
            wp_safe_redirect( wc_get_page_permalink( 'myaccount' ) );
            exit;
        }
    }
    add_action('template_redirect', 'wpse_131562_redirect');
    Bu kod ile üye girişi yapmadan sepet sayfasını görüntüleyemiyor. Ancak üye girişi yaptıktan sonra hesabım sayfasını açıyor. Bu koda, üye girişi yaptıktan sonra kullanıcıları geri ilgili ürün sayfasına yönlendirmesini nasıl sağlarım ?
  • 15-04-2023, 02:39:48
    #2
    wp_safe_redirect( wc_get_page_permalink( 'myaccount' ) );
    myaccount yerine sepet sayfasının permalink değerini yazarsanız olur cart olarak değiştirip deneyin
  • 15-04-2023, 02:49:12
    #3
    Aşağıdaki kod, üye girişi yapıldıktan sonra kullanıcıları son ziyaret ettikleri sayfaya yönlendirmeye yardımcı olacaktır:

    ```
    function wpse_131562_redirect() {
    if (
    ! is_user_logged_in()
    && (is_woocommerce() || is_cart() || is_checkout())
    ) {
    // redirect user to myaccount page if not logged in
    wp_safe_redirect( wc_get_page_permalink( 'myaccount' ) );
    exit;
    }

    if ( is_account_page() && ! is_user_logged_in() ) {
    // keep track of last page visited before login
    if ( isset( $_SERVER['HTTP_REFERER'] ) ) {
    $_SESSION['referer_url'] = $_SERVER['HTTP_REFERER'];
    }
    }

    if ( isset( $_SESSION['referer_url'] ) && ( is_account_page() || is_user_logged_in() ) ) {
    // redirect user to last visited page after login
    wp_safe_redirect( $_SESSION['referer_url'] );
    exit;
    }
    }
    add_action('template_redirect', 'wpse_131562_redirect');
    ```

    Bu kod, gelen istek WooCommerce sayfalarından biri ise ve kullanıcı giriş yapmadıysa, onu myaccount sayfasına yönlendirir. Ancak hesap sayfasında ki giriş sayfasında kullanıcının son ziyaret ettiği sayfayı kaydeder ve kaydedilmiş bir `referer_url` varsa, kullanıcı giriş yaptıktan sonra son ziyaret edilen sayfaya yönlendirir.

    Bu kod, `$_SESSION` kullanarak son ziyaret edilen sayfanın URL'sini kaydeder. Bu nedenle, `session_start()` işlevini `wp-config.php` dosyanıza eklemelisiniz. Aksi takdirde, kodun doğru şekilde çalışmayacağına dair bir uyarı alabilirsiniz. Bunu yapmak için `wp-config.php` dosyanızdaki ilk satıra `session_start();` ekleyebilirsiniz.
  • 15-04-2023, 13:34:01
    #4
    Codepad adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki kod, üye girişi yapıldıktan sonra kullanıcıları son ziyaret ettikleri sayfaya yönlendirmeye yardımcı olacaktır:

    ```
    function wpse_131562_redirect() {
    if (
    ! is_user_logged_in()
    && (is_woocommerce() || is_cart() || is_checkout())
    ) {
    // redirect user to myaccount page if not logged in
    wp_safe_redirect( wc_get_page_permalink( 'myaccount' ) );
    exit;
    }

    if ( is_account_page() && ! is_user_logged_in() ) {
    // keep track of last page visited before login
    if ( isset( $_SERVER['HTTP_REFERER'] ) ) {
    $_SESSION['referer_url'] = $_SERVER['HTTP_REFERER'];
    }
    }

    if ( isset( $_SESSION['referer_url'] ) && ( is_account_page() || is_user_logged_in() ) ) {
    // redirect user to last visited page after login
    wp_safe_redirect( $_SESSION['referer_url'] );
    exit;
    }
    }
    add_action('template_redirect', 'wpse_131562_redirect');
    ```

    Bu kod, gelen istek WooCommerce sayfalarından biri ise ve kullanıcı giriş yapmadıysa, onu myaccount sayfasına yönlendirir. Ancak hesap sayfasında ki giriş sayfasında kullanıcının son ziyaret ettiği sayfayı kaydeder ve kaydedilmiş bir `referer_url` varsa, kullanıcı giriş yaptıktan sonra son ziyaret edilen sayfaya yönlendirir.

    Bu kod, `$_SESSION` kullanarak son ziyaret edilen sayfanın URL'sini kaydeder. Bu nedenle, `session_start()` işlevini `wp-config.php` dosyanıza eklemelisiniz. Aksi takdirde, kodun doğru şekilde çalışmayacağına dair bir uyarı alabilirsiniz. Bunu yapmak için `wp-config.php` dosyanızdaki ilk satıra `session_start();` ekleyebilirsiniz.
    Hocam wp.config dosyasına session_start(); kodunu ekledim ama bu şekilde üyelik kısmına gitmiyor bu sefer de, çok fazla yönlendirildi diyor.