Options';
- $themes = mpdf_admin_find_themes();
- $CODEPAGES_ARRAY = [
+ $themes = mpdf_admin_find_themes();
+ $CODEPAGES_ARRAY = [
'utf-8',
'win-1251',
'win-1252',
@@ -87,7 +87,8 @@ function mpdf_admin_options() {
'uhc',
'shift_jis',
];
- $aUsersID = mpdf_admin_find_users();
+ $aUsersID = mpdf_admin_find_users();
+ $allowedSchedules = wp_get_schedules();
if ( isset( $_POST['save_options'] ) ) {
if ( ! isset( $_POST['wp_mpdf_noncename'] ) || ! wp_verify_nonce( $_POST['wp_mpdf_noncename'], plugin_basename( __FILE__ ) ) ) {
@@ -109,6 +110,14 @@ function mpdf_admin_options() {
update_option( 'mpdf_stats', isset( $_POST['stats'] ) );
update_option( 'mpdf_debug', isset( $_POST['debug'] ) );
+ if ( ! isset( $_POST['enable_cron'] ) ) {
+ wp_clear_scheduled_hook( 'mpdf_generate_pdfs_hook' );
+ } else {
+ if ( array_key_exists( $_POST['enable_cron'], $allowedSchedules ) ) {
+ wp_schedule_event( time(), $_POST['enable_cron'], 'mpdf_generate_pdfs_hook' );
+ }
+ }
+
if ( isset( $_POST['allow_all'] ) ) {
update_option( 'mpdf_allow_all', true );
} else {
@@ -223,6 +232,19 @@ function mpdf_admin_options() {
}
echo '/>';
+ //Enable cron job
+ echo 'Enable pdf generating cron job: | ';
+ if ( ! wp_next_scheduled( 'mpdf_generate_pdfs_hook' ) ) {
+ echo '';
+ } else {
+ echo '';
+ }
+ echo ' |
';
+
//Cron generating User
echo 'User for generating per Cron: | |
';
@@ -260,7 +282,7 @@ function mpdf_admin_listposts() {
continue;
}
- echo '';
+ echo '';
}
echo '';
echo '';
echo '';
echo '';
echo '';
@@ -387,17 +409,17 @@ function mpdf_admin_allowedprintedpages() {
$data = $wpdb->get_results( $sql, OBJECT );
for ( $i = 0; $i < count( $data ); $i ++ ) {
echo '';
- echo '' . esc_html($data[ $i ]->post_type) . ' | ';
+ echo '' . esc_html( $data[ $i ]->post_type ) . ' | ';
echo ' | ';
if ( $data[ $i ]->post_type == 'post' ) {
$post = get_post( $data[ $i ]->post_id );
- echo '' . esc_html($post->post_title) . ' | ';
+ echo '' . esc_html( $post->post_title ) . ' | ';
} else {
$page = get_page( $data[ $i ]->post_id );
- echo '' . esc_html($page->post_title) . ' | ';
+ echo '' . esc_html( $page->post_title ) . ' | ';
}
echo ' | ';
- echo 'Delete | ';
+ echo 'Delete | ';
echo '
';
}
echo '';
@@ -467,19 +489,19 @@ function mpdf_admin_pdfname() {
$data = $wpdb->get_results( $sql, OBJECT );
for ( $i = 0; $i < count( $data ); $i ++ ) {
echo '';
- echo '' . esc_html($data[ $i ]->post_type) . ' | ';
+ echo '' . esc_html( $data[ $i ]->post_type ) . ' | ';
echo ' | ';
if ( $data[ $i ]->post_type == 'post' ) {
$post = get_post( $data[ $i ]->post_id );
- echo '' . esc_html($post->post_title) . ' | ';
+ echo '' . esc_html( $post->post_title ) . ' | ';
} else {
$page = get_page( $data[ $i ]->post_id );
- echo '' . esc_html($page->post_title) . ' | ';
+ echo '' . esc_html( $page->post_title ) . ' | ';
}
echo ' -> | ';
- echo '' . esc_html($data[ $i ]->pdfname) . ' | ';
+ echo '' . esc_html( $data[ $i ]->pdfname ) . ' | ';
echo ' | ';
- echo 'Delete | ';
+ echo 'Delete | ';
echo '
';
}
echo '';
@@ -516,17 +538,17 @@ function mpdf_admin_stats() {
echo '';
echo '' . ( $i + 1 ) . '. (' . $data[ $i ]->downloads . ') | ';
echo ' | ';
- echo '' . esc_html($data[ $i ]->post_type) . ' | ';
+ echo '' . esc_html( $data[ $i ]->post_type ) . ' | ';
echo ' | ';
if ( $data[ $i ]->post_type == 'post' ) {
$post = get_post( $data[ $i ]->post_id );
- echo '' . esc_html($post->post_title) . ' | ';
+ echo '' . esc_html( $post->post_title ) . ' | ';
} else {
$page = get_page( $data[ $i ]->post_id );
- echo '' . esc_html($page->post_title) . ' | ';
+ echo '' . esc_html( $page->post_title ) . ' | ';
}
echo ' | ';
- echo 'Clear | ';
+ echo 'Clear | ';
echo '
';
}
echo '';
@@ -592,17 +614,17 @@ function mpdf_admin_loginneededpages() {
$data = $wpdb->get_results( $sql, OBJECT );
for ( $i = 0; $i < count( $data ); $i ++ ) {
echo '';
- echo '' . esc_html($data[ $i ]->post_type) . ' | ';
+ echo '' . esc_html( $data[ $i ]->post_type ) . ' | ';
echo ' | ';
if ( $data[ $i ]->post_type == 'post' ) {
$post = get_post( $data[ $i ]->post_id );
- echo '' . esc_html($post->post_title) . ' | ';
+ echo '' . esc_html( $post->post_title ) . ' | ';
} else {
$page = get_page( $data[ $i ]->post_id );
- echo '' . esc_html($page->post_title) . ' | ';
+ echo '' . esc_html( $page->post_title ) . ' | ';
}
echo ' | ';
- echo 'Delete | ';
+ echo 'Delete | ';
echo '
';
}
echo '';
@@ -651,9 +673,9 @@ function mpdf_admin_cache() {
if ( strtolower( substr( $file, strlen( $file ) - 5 ) ) == 'cache' ) {
$pdffilename = substr( $file, 0, strlen( $file ) - 6 );
echo '';
- echo '' . esc_html(file_get_contents( plugin_dir_path( __FILE__ ) . 'cache/' . $file )) . ' | ';
- echo '' . esc_html($pdffilename) . ' | ';
- echo 'Delete | ';
+ echo '' . esc_html( file_get_contents( plugin_dir_path( __FILE__ ) . 'cache/' . $file ) ) . ' | ';
+ echo '' . esc_html( $pdffilename ) . ' | ';
+ echo 'Delete | ';
echo '
';
}
}
diff --git a/wp-mpdf_cron.php b/wp-mpdf_cron.php
new file mode 100644
index 0000000..b53f3f4
--- /dev/null
+++ b/wp-mpdf_cron.php
@@ -0,0 +1,60 @@
+.
+ */
+
+function mpdf_cron_generate_pdfs() {
+ global $wpdb;
+
+ //Check if Caching is enabled or not
+ if ( get_option( 'mpdf_caching' ) != true ) {
+ echo "No caching enabled\n";
+
+ return;
+ }
+
+ $oldUser = wp_get_current_user();
+ try {
+ //Do login if is whished
+ if ( get_option( 'mpdf_cron_user' ) != '' ) {
+ $userId = get_option( 'mpdf_cron_user' );
+ if ( get_option( 'mpdf_cron_user' ) == 'auto' ) {
+ $aUsersID = $wpdb->get_col( $wpdb->prepare( 'SELECT ID FROM ' . $wpdb->users . ' LIMIT 1' ) );
+ foreach ( $aUsersID as $iUserID ) {
+ $userId = $iUserID;
+ }
+ }
+
+ wp_set_current_user( $userId );
+ }
+
+ //Cache the posts
+ $_GET['output'] = 'pdf';
+ echo "Start cache creating\n";
+
+ $posts = get_posts( 'numberposts=-1&order=ASC&orderby=title' );
+ foreach ( $posts as $post ) {
+ if ( $post->post_title == '' ) {
+ echo "Skip post creating: No Title (" . $post->ID . ")\n";
+ continue;
+ }
+
+ echo "Create cache for post (" . $post->ID . ")\n";
+
+
+ query_posts( 'p=' . $post->ID );
+ mpdf_exec( 'false' );
+ }
+
+ echo "Caching finished\n";
+ } finally {
+ wp_set_current_user( $oldUser->ID );
+ }
+}