Editor::image_process( array $matches )
Description #
Callback called in @see ::pre_get.
Checks if current image is in anspress-temp
directory and if so then moves it to anspress-uploads
directory and return new img
tag with new src.
Parameters #
- $matchesarray (Required) Regex matches.
Source #
File: lib/form/class-editor.php
public function image_process( $matches ) { if ( false === strpos( $matches[1], 'anspress-temp/' ) ) { return $matches[0]; } $files = anspress()->session->get( 'files' ); $uploads = wp_upload_dir(); $basename = basename( $matches[1] ); $temp_file = $uploads['basedir'] . '/anspress-temp/' . $basename; // Make sure WP_Filesystem is loaded. if ( ! function_exists( 'WP_Filesystem' ) ) { require_once ABSPATH . 'wp-admin/includes/file.php'; } // Initialize WP_Filesystem. if ( ! WP_Filesystem() ) { // Unable to initialize WP_Filesystem, handle error accordingly. return; } global $wp_filesystem; // Check temp file is in anspress-temp directory. if ( ! file_exists( $temp_file ) ) { $this->add_error( 'fields-error', __( 'Sorry an error occured while processing your image, please remove it and insert again', 'anspress-question-answer' ) ); } else { $upload_dir = $uploads['basedir'] . '/anspress-uploads/'; // Make dir if not exists. if ( ! file_exists( $upload_dir ) ) { $wp_filesystem->mkdir( $upload_dir ); } // Check file in session and then move. if ( in_array( $basename, $files, true ) ) { $this->images[] = $basename; $newfile = $upload_dir . "/$basename"; $new_file_url = $uploads['baseurl'] . "/anspress-uploads/$basename"; $wp_filesystem->move( $uploads['basedir'] . "/anspress-temp/$basename", $newfile ); return '<img src="' . esc_url( $new_file_url ) . '" />'; } } return false; }
Expand full source code Collapse full source code View on GitHub: lib/form/class-editor.php:197
Add your comment