Значения форм не сохраняются в базе данных WordPress - PullRequest
0 голосов
/ 03 октября 2019

Здравствуйте, я разрабатываю плагин WP и получаю значения из формы и хочу сохранить его в базе данных. Это не работает, за исключением того, что я использую хук admin-init для функции save_form_values. См. Мой код ниже:

function save_form_values() {

      if (($_SERVER['REQUEST_METHOD'] == 'POST')  ){
      global $wpdb;

      $delegate_name = trim($_POST['delegate_name']);
      $certificate_id = trim($_POST['certificate_id']);
      $training_course = trim($_POST['training_course']);
      $company = trim($_POST['company']);
      $startdate = trim($_POST['startdate']);
      $enddate = trim($_POST['enddate']);
      $expirationdate = trim($_POST['expirationdate']);

      $table_name = $wpdb->prefix . 'certificat';
      $wpdb->insert( $table_name, array(
      'nom' => $delegate_name,
      'numero' => $certificate_id,
      'idformation' => $training_course,
      'idsociete' => $company,
      'date_formation' => $enddate,
      'date_expiration' => $expirationdate
      ) );

      require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php'); 

      if($_FILES['trainee_image']['name']) {
     if(!$_FILES['trainee_image']['error']) {
    //validate the file
     $new_file_name = strtolower($_FILES['trainee_image']['tmp_name']);
    //can't be larger than 200 KB 
     if($_FILES['trainee_image']['size'] > (200000)) {
      //wp_die generates a visually appealing message element
      wp_die('Your file size is to large.');
     }
     else {
      //the file has passed the test
      //These files need to be included as dependencies when on the front end.
      require_once( ABSPATH . 'wp-admin/includes/image.php' );
      require_once( ABSPATH . 'wp-admin/includes/file.php' );
      require_once( ABSPATH . 'wp-admin/includes/media.php' );

      // Let WordPress handle the upload.
      // Remember, 'upload' is the name of our file input in our form above.
      $file_id = media_handle_upload( 'trainee_image', 0 );

      if ( is_wp_error( $file_id ) ) {
         wp_die('Error loading file!');
      } 
    }
    }
    else {
    //set that to be the returned message
    wp_die('Error: '.$_FILES['trainee_image']['error']);
    }
    }

    }
    }

это работает, когда я делаю это:

 add_action( 'admin_init', 'save_form_values' );

Мне нужен код, чтобы работать без хука. Может кто-нибудь помочь, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...