首页 文章

将表单提交重定向到另一个页面问题

提问于
浏览
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 回答

  • 1

    你需要某种类型的钩子来提供表单的状态,并将其绑定到重定向以作用于钩子 . 就像将重定向作为一个函数一样,并在正确提交表单时调用该函数 . 're third party plugin'就像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' );
    }
    

相关问题