plugin_name = $plugin_name;
$this->version = $version;
}
/**
* Enqueue scripts and styles for the media uploader
*/
public function enqueue_scripts( $hook_suffix ){
global $post_type;
if ( 'upload.php' === $hook_suffix || ( ! empty( $post_type ) && 'post.php' === $hook_suffix && 'attachment' === $post_type ) ) {
if ( get_option('quickwebp_settings_paste_image', quickwebp_settings_default('quickwebp_settings_paste_image')) == '1' ){
$wp_media_extends_assets = include( QUICKWEBP_PLUGIN_PATH . 'public/assets/build/wp-media-extends.asset.php' );
wp_enqueue_style( 'quickwebp-wp-media-extends', QUICKWEBP_PLUGIN_URL . 'public/assets/build/wp-media-extends.css', array(), $wp_media_extends_assets['version'], 'all' );
wp_enqueue_script( 'quickwebp-wp-media-extends', QUICKWEBP_PLUGIN_URL . 'public/assets/build/wp-media-extends.js', $wp_media_extends_assets['dependencies'], $wp_media_extends_assets['version'], true );
wp_localize_script( 'quickwebp-wp-media-extends', 'quickwebp_wp_media_extends', array(
'is_upload_page' => $hook_suffix === 'upload.php',
'nonce' => wp_create_nonce( 'media-form' ),
'tmpl_tab_media_paste' => file_get_contents( QUICKWEBP_PLUGIN_PATH . 'admin/templates/tab-media-paste.php' ),
'tmpl_button_media_paste' => file_get_contents( QUICKWEBP_PLUGIN_PATH . 'admin/templates/button-media-paste.php' ),
'l10n' => array(
'prompt_text' => __( 'Please enter the name of your image', 'quickwebp' ),
'button_text' => __( 'Quickwebp paste image', 'quickwebp' ),
'click_paste' => __( 'Click here, and paste your image.', 'quickwebp' )
)
));
}
$admin_attachment_assets = include( QUICKWEBP_PLUGIN_PATH . 'public/assets/build/admin-attachment.asset.php' );
wp_enqueue_style( 'quickwebp-admin-attachment', QUICKWEBP_PLUGIN_URL . 'public/assets/build/admin-attachment.css', array(), $admin_attachment_assets['version'], 'all' );
wp_enqueue_script( 'quickwebp-admin-attachment', QUICKWEBP_PLUGIN_URL . 'public/assets/build/admin-attachment.js', $admin_attachment_assets['dependencies'], $admin_attachment_assets['version'], true );
wp_localize_script( 'quickwebp-admin-attachment', 'QUICKWEBP_ADMIN_ATTACHMENT', array(
'nonce' => wp_create_nonce( 'quickwebp_admin_attachment' ),
'ajaxUrl' => admin_url( 'admin-ajax.php' )
));
}
}
/**
* Add "Quickwebp" column in the Media Uploader
*/
public function add_attachment_fields_to_edit( $form_fields, $post ) {
global $pagenow;
if ( 'post.php' === $pagenow ) {
return $form_fields;
}
if ( ! $this->valid_mimetype( $post->ID ) ) {
return $form_fields;
}
$image_optimizer = new Quickwebp_Image_Optimizer( $this->plugin_name, $this->version );
$settings = $image_optimizer->get_settings();
$html = '';
$status = '0';
$already_optimized = get_post_meta( $post->ID, 'quickwebp_already_optimized', true );
$data = get_post_meta( $post->ID, 'quickwebp_data', true );
$mode_enabled = $settings['quickwebp_settings_conversion'];
if ( '1' == $already_optimized && ( '1' == $mode_enabled || '0' == $mode_enabled ) ) {
if ( is_array( $data ) ) {
$status = '1';
} else {
$status = '2';
}
}
if ( '2' == $already_optimized && ( '2' == $mode_enabled || '0' == $mode_enabled ) ) {
if ( is_array( $data ) ) {
$status = '1';
} else {
$status = '2';
}
}
switch ( $status ) {
case '0':
$html = $this->optimize_btn( $post->ID );
break;
case '1':
$html = $this->attachment_data( $data, $post->ID );
break;
case '2':
$html = '
' . esc_html__( 'Image already optimized.', 'quickwebp' );
break;
}
$form_fields['wpmtk_media_encoder'] = array(
'label' => 'Quickwebp',
'input' => 'html',
'html' => $html,
'show_in_edit' => true,
'show_in_modal' => true
);
return $form_fields;
}
/**
* Add "quickwebp" column in upload.php
*/
public function add_media_columns( $columns ) {
$columns['quickwebp'] = 'QuickWebP';
return $columns;
}
/**
* Add "Quickwebp" column in the Media list table
*/
public function add_media_custom_column( $column_name, $attachment_id ) {
if ( 'quickwebp' !== $column_name ) {
return;
}
if ( ! $this->valid_mimetype( $attachment_id ) ) {
echo esc_html__( 'Image type not supported', 'quickwebp' );
return;
}
$image_optimizer = new Quickwebp_Image_Optimizer( $this->plugin_name, $this->version );
$settings = $image_optimizer->get_settings();
$html = '';
$status = '0';
$already_optimized = get_post_meta( $attachment_id, 'quickwebp_already_optimized', true );
$data = get_post_meta( $attachment_id, 'quickwebp_data', true );
$mode_enabled = $settings['quickwebp_settings_conversion'];
if ( '1' == $already_optimized && ( '1' == $mode_enabled || '0' == $mode_enabled ) ) {
if ( is_array( $data ) ) {
$status = '1';
} else {
$status = '2';
}
}
if ( '2' == $already_optimized && ( '2' == $mode_enabled || '0' == $mode_enabled ) ) {
if ( is_array( $data ) ) {
$status = '1';
} else {
$status = '2';
}
}
switch ( $status ) {
case '0':
echo wp_kses_post( $this->optimize_btn( $attachment_id ) );
break;
case '1':
echo wp_kses_post( $this->attachment_data( $data, $attachment_id ) );
break;
case '2':
echo wp_kses_post( '
' . esc_html__( 'Image already optimized.', 'quickwebp' ) );
break;
}
}
/**
* Add a "Optimize" button or the Imagify optimization data in the attachment submit area.
*/
public function add_attachment_submitbox_misc_actions() {
global $post;
if ( ! $this->valid_mimetype( $post->ID ) ) {
return;
}
$image_optimizer = new Quickwebp_Image_Optimizer( $this->plugin_name, $this->version );
$settings = $image_optimizer->get_settings();
$html = '';
$status = '0';
$already_optimized = get_post_meta( $post->ID, 'quickwebp_already_optimized', true );
$data = get_post_meta( $post->ID, 'quickwebp_data', true );
$mode_enabled = $settings['quickwebp_settings_conversion'];
if ( '1' == $already_optimized && ( '1' == $mode_enabled || '0' == $mode_enabled ) ) {
if ( is_array( $data ) ) {
$status = '1';
} else {
$status = '2';
}
}
if ( '2' == $already_optimized && ( '2' == $mode_enabled || '0' == $mode_enabled ) ) {
if ( is_array( $data ) ) {
$status = '1';
} else {
$status = '2';
}
}
echo '
QuickWebP ';
switch ( $status ) {
case '0':
echo wp_kses_post( $this->optimize_btn( $post->ID ) );
break;
case '1':
echo wp_kses_post( $this->attachment_data( $data, $post->ID ) );
break;
case '2':
echo esc_html__( 'Image already optimized.', 'quickwebp' );
break;
}
echo ' |