Форма данных в CSV

Я написал этот небольшой кусочек кода как попытку получить данные из формы расписания, которую я создал с помощью контактной формы 7, сохранить эти данные в формате CSV, как я хочу, а затем отправить их на электронную почту, указанную в "Почте". раздел контактной формы. К сожалению, я столкнулся с двумя проблемами, которые, кажется, не могу обернуться.

Не могу сохранить документ CSV в каталог, который я определил. Или сохранить в этом отношении. Вот мой код:

<?php

add_action( 'wpcf7_before_send_mail', 'add_form_as_attachment', 10, 1 ); 

function add_form_as_attachment(&$WPCF7_ContactForm) {
    $current_user = wp_get_current_user();
    $pay_rate = get_user_meta( $current_user->ID, 'pay-rate', true );

    $list = array (
        array( 'Employee Name:', $current_user->display_name),
        array( 'Selected Week:', $pay_rate),
        array( 'Weekday', 'Job Number', 'Labor Desc', 'Labor Code', 'Total Hours', 'Break Hours'),
        array(
            'Sunday',
            $WPCF7_ContactForm->posted_data['job-number-sun'],
            $WPCF7_ContactForm->posted_data['labor-desc-sun'],
            $WPCF7_ContactForm->posted_data['labor-code-sun'],
            $WPCF7_ContactForm->posted_data['total-hours-sun'],
            $WPCF7_ContactForm->posted_data['break-hours-sun']
        ),array(
            'Monday',
            $WPCF7_ContactForm->posted_data['job-number-mon'],
            $WPCF7_ContactForm->posted_data['labor-desc-mon'],
            $WPCF7_ContactForm->posted_data['labor-code-mon'],
            $WPCF7_ContactForm->posted_data['total-hours-mon'],
            $WPCF7_ContactForm->posted_data['break-hours-mon']
        ),array(
            'Tuesday',
            $WPCF7_ContactForm->posted_data['job-number-tue'],
            $WPCF7_ContactForm->posted_data['labor-desc-tue'],
            $WPCF7_ContactForm->posted_data['labor-code-tue'],
            $WPCF7_ContactForm->posted_data['total-hours-tue'],
            $WPCF7_ContactForm->posted_data['break-hours-tue']
        ),array(
            'Wednesday',
            $WPCF7_ContactForm->posted_data['job-number-wed'],
            $WPCF7_ContactForm->posted_data['labor-desc-wed'],
            $WPCF7_ContactForm->posted_data['labor-code-wed'],
            $WPCF7_ContactForm->posted_data['total-hours-wed'],
            $WPCF7_ContactForm->posted_data['break-hours-wed']
        ),array(
            'Thursday',
            $WPCF7_ContactForm->posted_data['job-number-thu'],
            $WPCF7_ContactForm->posted_data['labor-desc-thu'],
            $WPCF7_ContactForm->posted_data['labor-code-thu'],
            $WPCF7_ContactForm->posted_data['total-hours-thu'],
            $WPCF7_ContactForm->posted_data['break-hours-thu']
        ),array(
            'Friday',
            $WPCF7_ContactForm->posted_data['job-number-fri'],
            $WPCF7_ContactForm->posted_data['labor-desc-fri'],
            $WPCF7_ContactForm->posted_data['labor-code-fri'],
            $WPCF7_ContactForm->posted_data['total-hours-fri'],
            $WPCF7_ContactForm->posted_data['break-hours-fri']
        ),array(
            'Saturday',
            $WPCF7_ContactForm->posted_data['job-number-sat'],
            $WPCF7_ContactForm->posted_data['labor-desc-sat'],
            $WPCF7_ContactForm->posted_data['labor-code-sat'],
            $WPCF7_ContactForm->posted_data['total-hours-sat'],
            $WPCF7_ContactForm->posted_data['break-hours-sat']
        ),array(
            'Travel Mileage (Miles):',
            $WPCF7_ContactForm->posted_data['mileage'],
            'Travel Mileage (MPG):',
            $WPCF7_ContactForm->posted_data['mpg']
        ),array(
            'Remarks:',
            $WPCF7_ContactForm->posted_data['remarks']
        )
    );

    $debug_echo = 'Target Directory: ' . $target_directory . '\n\n';
    $debug_echo .= 'WPCF7 Upload Directory: ' . wpcf7_upload_tmp_dir() . '\n\n';
    $debug_echo .= 'Real Path: ' . realpath(dirname(__FILE__)) . '\n\n';
    $debug_echo .= 'Target Directory Permissions: ' . substr(sprintf('%o', fileperms( $target_directory )), -4);

    $target_directory = '/nas/content/live/lovettmechanic/wp-content/uploads/timesheets/timesheet.csv';

    $fp = fopen( $target_directory , 'w');
    debug_to_console( $debug_echo );


    foreach ($list as $fields) {
        fputcsv($fp, $fields);
    }

    fclose($fp);

}

function debug_to_console( $data ) {
    $output = $data;
    if ( is_array( $output ) )
        $output = implode( ',', $output);

    echo "<script>console.log( 'Debug Objects: " . $output . "' );</script>";
}

Любая помощь обязательно будет оценена. Я бился головой о стену, пытаясь понять это какое-то время.

== РЕДАКТИРОВАТЬ == Я отредактировал вопрос, чтобы показать, что, возможно, функция не срабатывает в первую очередь. Или, по крайней мере, echo команда в debug_to_console() функция не Опять же, это должно быть срабатывание, потому что я получу ошибку http 500, если есть синтаксическая ошибка. Но debug_to_console() функция работает не так, как ожидалось. Я думаю, что это может помочь выяснить проблему.

0 ответов

Другие вопросы по тегам