programing

연락처 양식 7 - php 실행 불가

muds 2023. 9. 18. 22:44
반응형

연락처 양식 7 - php 실행 불가

워드프레스와 플러그인을 설치하였습니다.contact form 7그 안에

내가 설치한 여러 페이지의 연락처 양식으로 만들기 위해Contact Form 7 Multi-Step Forms뿐만 아니라.아직까지는 모든 것이 잘 됩니다.심지어 우편물도 발송됩니다.

문제는 이메일을 보내기 전에 PHP 코드를 실행하고 싶다는 것입니다.

플러그인이 실행할 수 있는 기능을 시도하기 위해 이 코드를 삽입했습니다.

function testfunc( $cf7 )
{
    mysql_connect("localhost", "user_name", "password") or die(mysql_error());
    mysql_select_db("db_name") or die(mysql_error());
    mysql_query("CREATE TABLE `aaaaaaaaaaa` ( test VARCHAR(30))");
}

add_action( 'wpcf7_before_send_mail', 'testfunc', 1);

추가 php 파일에서 플러그인 외부에서 실행해도 기능이 잘 작동합니다.

플러그인에 삽입해도 기능이 작동하지 않는 이유를 알 수가 없습니다.

워드프레스의 데이터베이스를 전역적으로 사용하여 쿼리합니다.wpdb이와 같은 물건

참조

function testfunc( $cf7 )
{
    global $wpdb;
    $wpdb->query("CREATE TABLE `aaaaaaaaaaa` ( test VARCHAR(30))");
}

add_action( 'wpcf7_before_send_mail', 'testfunc', 1);

word press create tabel은 연결을 위해 php 구조가 아닌 이 방법을 사용합니다.

생성을 위한 자세한 정보, wp를 위한 테이블 데이터 가져오기

function testfunc( $cf7 )
{
    global $wpdb;

    $table_name = $wpdb->prefix . 'tablename';

    $sql = "CREATE TABLE IF NOT EXISTS ".$table_name."(
      id int(11) NOT NULL AUTO_INCREMENT,
      name varchar(255) DEFAULT NULL,
      UNIQUE KEY id (id)
    );";

    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
}

레이브 파텔의 경우 +1

매번 테이블을 만들기 전에 테이블이 존재하는지 확인하는 것만 권장합니다.

function testfunc( $cf7 )
{

    global $wpdb;

    $table_name = $wpdb->prefix . 'tablename';

    if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {

        $sql = "CREATE TABLE $table_name (
            id int(11) NOT NULL AUTO_INCREMENT,
            name varchar(255) DEFAULT NULL,
            UNIQUE KEY id (id)
        )";

        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
        dbDelta( $sql );
    }
}

언급URL : https://stackoverflow.com/questions/23488897/contact-form-7-cannot-run-php

반응형