Szűrők és horgok

Adatok feldolgozása

A plugin lehetővé teszi, hogy az adatok mentésének módját felül lehessen írni. Ha az űrlap adatai mentése be van kapcsolva, akkor az adatokat – alapértelmezésben – saját adatbázisba menti. Azonban a mentési eljárás felülírható.

Az alábbi példában az űrlap kitöltésekor megadott adatokat, saját custom post type bejegyzésként mentjük el:

functions.php:

function my_save_data_action($options, $data) {
    // $form_to_pdf_891_saved_data --> sikeres mentés jelző: true vagy false értékre kell beállítani 
    global $wpdb, $form_to_pdf_891_saved_data;
    
    // $options --> Tömb, az űrlap meghívása paraméterei
    // $data --> Tömb, az űrlapban megadott adatok
    
    $id = wp_insert_post(array(
            'post_title'  => $data['title'], 
            'post_type'   => $options['post_type'], 
            'post_status' => 'publish'
        ));
    if (!empty($id)) {
        add_post_meta($id, 'my_meta',   $data['meta']);
    }
    
    // Ha a mentés sikeres volt
    $form_to_pdf_891_saved_data = true;
}

if (has_action('form_to_pdf_save_data_action')) {
    remove_action( 'form_to_pdf_save_data_action', 'form_to_pdf_891_save_data_action' );
    add_action( 'form_to_pdf_save_data_action', 'my_save_data_action', 10, 2);
}

Címzettek módosítása

Szűrőn keresztül – akár a kitöltött adatok alapján – lehetőség van a címzettek módosítására:

functions.php:

function my_form_to_pdf_modify_to($to, $data) {
    
    // $data (array) -> Az űrlapon kitöltött adatok
    // $to (array)   -> A címzettek (email címek) tömbje

    $addresses = array();
    $users = get_users('role='.$data['usergroup']);
    foreach ($users as $user) {
        if (!in_array($user->user_email, $to)) {
            $to[] = $user->user_email;
        }
    }    

	/* VAGY */
	
    $to = array('info@my_domain.hu');
    
    return $to;
}
add_filter('form_to_pdf_modify_to', 'my_form_to_pdf_modify_to', 10, 2);

Rejtett másolat címzettek beállítása

Szűrőn keresztül – akár a kitöltött adatok alapján – lehetőség rejtett másolatot küldeni címzetteknek:

functions.php:

function my_form_to_pdf_modify_bcc($data) {
    
    // $data (array) -> Az űrlapon kitöltött adatok

    $bcc = array();
    $users = get_users('role='.$data['usergroup']);
    foreach ($users as $user) {
        $bcc[] = $user->user_email;
    }    

	/* VAGY */

    $bcc = array('info@my_domain.hu');
    
    return $bcc;
}
add_filter('form_to_pdf_modify_bcc', 'my_form_to_pdf_modify_bcc', 10, 1);
Kérlek, vedd figyelembe, hogy a fenti kódok nem teljesek, mindössze a szemléltetés a céljuk.