За последние 24 часа нас посетили 20139 программистов и 1696 роботов. Сейчас ищут 1511 программистов ...

Таблица в базе данных wordpress для формы

Тема в разделе "PHP и базы данных", создана пользователем Murr, 17 авг 2018.

  1. Murr

    Murr Новичок

    С нами с:
    17 авг 2018
    Сообщения:
    2
    Симпатии:
    0
    Делаю плагин для вордпресс, столкнулась с такой проблемой: если форму пишу сама, то данные могу записать в базу данных, а если форму использую из Contact Form 7, то не получается записать данные в бд. Можете подсказать плиз куда копать?
    PHP:
    1. function createTAble(){
    2.         global $wpdb;
    3.         $tableName = $wpdb->prefix . 'faktura';
    4.         $charset_collate = $wpdb->get_charset_collate();
    5.         $sql = "CREATE TABLE ".$tableName." (
    6.            id mediumint(9) NOT NULL AUTO_INCREMENT,
    7.            form varchar(100) NOT NULL DEFAULT '',
    8.            company_name varchar(40) NOT NULL,
    9.            nip varchar(20) NOT NULL,
    10.            person_first_name nvarchar(50) NOT NULL,
    11.            person_second_name nvarchar(50) NOT NULL,
    12.            email varchar(50) NOT NULL,
    13.            telephone varchar(20) NULL,
    14.            back_email varchar(20) NOT NULL,
    15.            PRIMARY KEY  (id)
    16.        ) $charset_collate;";
    17.         require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    18.         dbDelta( $sql );
    19.     }
    20. function bm_save_form( $wpcf7 ) {
    21.     global $wpdb;
    22.         $submission = WPCF7_Submission::get_instance();
    23.     if ( $submission ) {
    24.         $submited = array();
    25.         $submited['title'] = $wpcf7->title();
    26.         $submited['posted_data'] = $submission->get_posted_data();
    27.     }
    28.     $wpdb->insert( $wpdb->prefix . 'faktura', array(
    29.         'form'  => $submited['title'],
    30.         'company_name' => $submited['posted_data']['text-818'],
    31.         'nip' => $submited['posted_data']['text-819'],
    32.         'person_first_name' => $submited['posted_data']['your-name'],
    33.         'person_second_name' => $submited['posted_data']['your-name'],
    34.         'email' => $submited['posted_data']['your-email'],
    35.         'telephone' => $submited['posted_data']['text-817'],
    36.         'back_email' => $submited['posted_data']['email-723']
    37.         )
    38.     );
    39.     $wpdb->query('COMMIT');
    40.     return;
    41. }
    42. add_action( 'init', [ $this, 'createTable' ] );
    43. add_action('bm_save_form', [$this,'bm_save_form'] );
     
    #1 Murr, 17 авг 2018
    Последнее редактирование модератором: 17 авг 2018
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Murr, для начала: какими сообщениями об ошибках/замечаниях сопровождается событие "не получается записать данные в бд"?
    И ещё есть плагин Contact Form to DB
     
  3. Murr

    Murr Новичок

    С нами с:
    17 авг 2018
    Сообщения:
    2
    Симпатии:
    0
    Вопрос закрыт. Нашла ошибку. Если кому-то интересно:
    add_action('wpcf7_before_send_mail',[$this,'bm_save_form']);