2017-03-18 86 views
0

在我的Wordpress網站上,我想在提交表單後將其重定向到example.com/user這樣的頁面。將表單提交重定向到其他頁面問題

:method:POST 
:path:/dash/product/edit/ 

這裏是形式的開頭:

<!-- Submission Form --> 
<form method="post" action="" id="wcv-product-edit" class="wcv-form wcv-formvalidator"> 

和表格的末尾:

<?php WCVendors_Pro_Product_Form::form_data($object_id, $post_status); ?> 
      <?php WCVendors_Pro_Product_Form::save_button($title); ?> 

我試圖把這個表格裏面:

header('Location: http://www.example.com/user'); 

但是,這重定向整個頁面的形式是沒有將表單提交到example.com/user。表單位於此路徑上:/dash/product/edit/。所以,當我要求這個路徑(如該表格位於),它只是重定向到example.com/user

表控制器:

public function process_submit() { 

     if (! isset($_POST[ '_wcv-save_product' ]) || !wp_verify_nonce($_POST[ '_wcv-save_product' ], 'wcv-save_product') || !is_user_logged_in()) { 
      return; 
     } 

     $can_submit_live  = WC_Vendors::$pv_options->get_option('can_submit_live_products'); 
     $current_post_status = isset($_POST[ 'post_status' ]) ? $_POST[ 'post_status' ] : ''; 
     $can_edit_approved  = WC_Vendors::$pv_options->get_option('can_edit_approved_products'); 
     $trusted_vendor   = (get_user_meta(get_current_user_id(), '_wcv_trusted_vendor', true) == 'yes') ? true: false; 
     $untrusted_vendor  = (get_user_meta(get_current_user_id(), '_wcv_untrusted_vendor', true) == 'yes') ? true: false; 

     if ($trusted_vendor) $can_submit_live = true; 
     if ($untrusted_vendor) $can_submit_live = false; 


     $text = array('notice' => '', 'type' => 'success'); 

我怎樣才能將其重定向到example.com/user後,才成功提交表單?

回答

1

您需要某種形式的鉤子來提供表單的狀態,並將其綁定到重定向以便執行鉤子操作。就像使重定向成爲一個函數,並且在表單正確提交時調用該函數一樣。有第三方插件像Gravity From可以爲你做到這一點。如果你想要這樣的付費服務,它取決於你。

public function process_submit() { 
 

 
    if (! isset($_POST[ '_wcv-save_product' ]) || !wp_verify_nonce($_POST[ '_wcv-save_product' ], 'wcv-save_product') || !is_user_logged_in()) { 
 
    return; 
 
    } 
 

 
    $can_submit_live  = WC_Vendors::$pv_options->get_option('can_submit_live_products'); 
 
    $current_post_status = isset($_POST[ 'post_status' ]) ? $_POST[ 'post_status' ] : ''; 
 
    $can_edit_approved  = WC_Vendors::$pv_options->get_option('can_edit_approved_products'); 
 
    $trusted_vendor   = (get_user_meta(get_current_user_id(), '_wcv_trusted_vendor', true) == 'yes') ? true: false; 
 
    $untrusted_vendor  = (get_user_meta(get_current_user_id(), '_wcv_untrusted_vendor', true) == 'yes') ? true: false; 
 

 
    if ($trusted_vendor) { 
 
    header('Location: http://www.example.com/user'); 
 
    }else { 
 
    # code... 
 
    } 
 

 

 
    $text = array('notice' => '', 'type' => 'success'); 
 
}

public function process_submit() { 
 

 
    if (! isset($_POST[ '_wcv-save_product' ]) || !wp_verify_nonce($_POST[ '_wcv-save_product' ], 'wcv-save_product') || !is_user_logged_in()) { 
 
     return; 
 
    } 
 

 
    $can_submit_live  = WC_Vendors::$pv_options->get_option('can_submit_live_products'); 
 
    $current_post_status = isset($_POST[ 'post_status' ]) ? $_POST[ 'post_status' ] : ''; 
 
    $can_edit_approved  = WC_Vendors::$pv_options->get_option('can_edit_approved_products'); 
 
    $trusted_vendor   = (get_user_meta(get_current_user_id(), '_wcv_trusted_vendor', true) == 'yes') ? true: false; 
 
    $untrusted_vendor  = (get_user_meta(get_current_user_id(), '_wcv_untrusted_vendor', true) == 'yes') ? true: false; 
 

 
    if ($trusted_vendor) $can_submit_live = true; 
 
    if ($untrusted_vendor) $can_submit_live = false; 
 

 
    if ($can_submit_live) { 
 
     header('Location: http://www.example.com/user'); 
 
    }else { 
 
     # code... 
 
    } 
 
    
 
    $text = array('notice' => '', 'type' => 'success'); 
 
}

+0

我會使用插件,但我必須要使用的是插件的一部分的形式:/ –

+1

既然你寫的形式和自己驗證;你會得到驗證失敗或成功的結果嗎?如果你這樣做,你可以綁定'header('Location:http://www.example.com/user');'用'if語句'來綁定。重定向發生無緣無故,因爲它是一個獨立的功能,沒有什麼可以打斷默認流程,如查詢 –

+0

嗨,編輯我的問題和添加表單控制器與if語句提交按鈕。請檢查一下。 –

相關問題