WC_Email::admin_options()
Admin Options.
Description Description
Setup the email settings screen. Override this in your email.
Source Source
File: includes/emails/class-wc-email.php
public function admin_options() { // Do admin actions. $this->admin_actions(); ?> <h2><?php echo esc_html( $this->get_title() ); ?> <?php wc_back_link( __( 'Return to emails', 'woocommerce' ), admin_url( 'admin.php?page=wc-settings&tab=email' ) ); ?></h2> <?php echo wpautop( wp_kses_post( $this->get_description() ) ); // phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped ?> <?php /** * Action hook fired before displaying email settings. * * @param string $email The email object */ do_action( 'woocommerce_email_settings_before', $this ); ?> <table class="form-table"> <?php $this->generate_settings_html(); ?> </table> <?php /** * Action hook fired after displaying email settings. * * @param string $email The email object */ do_action( 'woocommerce_email_settings_after', $this ); ?> <?php if ( current_user_can( 'edit_themes' ) && ( ! empty( $this->template_html ) || ! empty( $this->template_plain ) ) ) { ?> <div id="template"> <?php $templates = array( 'template_html' => __( 'HTML template', 'woocommerce' ), 'template_plain' => __( 'Plain text template', 'woocommerce' ), ); foreach ( $templates as $template_type => $title ) : $template = $this->get_template( $template_type ); if ( empty( $template ) ) { continue; } $local_file = $this->get_theme_template_file( $template ); $core_file = $this->template_base . $template; $template_file = apply_filters( 'woocommerce_locate_core_template', $core_file, $template, $this->template_base, $this->id ); $template_dir = apply_filters( 'woocommerce_template_directory', 'woocommerce', $template ); ?> <div class="template <?php echo esc_attr( $template_type ); ?>"> <h4><?php echo wp_kses_post( $title ); ?></h4> <?php if ( file_exists( $local_file ) ) : ?> <p> <a href="#" class="button toggle_editor"></a> <?php if ( is_writable( $local_file ) ) : // phpcs:ignore WordPress.VIP.FileSystemWritesDisallow.file_ops_is_writable ?> <a href="<?php echo esc_url( wp_nonce_url( remove_query_arg( array( 'move_template', 'saved' ), add_query_arg( 'delete_template', $template_type ) ), 'woocommerce_email_template_nonce', '_wc_email_nonce' ) ); ?>" class="delete_template button"> <?php esc_html_e( 'Delete template file', 'woocommerce' ); ?> </a> <?php endif; ?> <?php /* translators: %s: Path to template file */ printf( esc_html__( 'This template has been overridden by your theme and can be found in: %s.', 'woocommerce' ), '<code>' . esc_html( trailingslashit( basename( get_stylesheet_directory() ) ) . $template_dir . '/' . $template ) . '</code>' ); ?> </p> <div class="editor" style="display:none"> <textarea class="code" cols="25" rows="20" <?php if ( ! is_writable( $local_file ) ) : // phpcs:ignore WordPress.VIP.FileSystemWritesDisallow.file_ops_is_writable ?> readonly="readonly" disabled="disabled" <?php else : ?> data-name="<?php echo esc_attr( $template_type ) . '_code'; ?>"<?php endif; ?>><?php echo esc_html( file_get_contents( $local_file ) ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents ?></textarea> </div> <?php elseif ( file_exists( $template_file ) ) : ?> <p> <a href="#" class="button toggle_editor"></a> <?php $emails_dir = get_stylesheet_directory() . '/' . $template_dir . '/emails'; $templates_dir = get_stylesheet_directory() . '/' . $template_dir; $theme_dir = get_stylesheet_directory(); if ( is_dir( $emails_dir ) ) { $target_dir = $emails_dir; } elseif ( is_dir( $templates_dir ) ) { $target_dir = $templates_dir; } else { $target_dir = $theme_dir; } if ( is_writable( $target_dir ) ) : // phpcs:ignore WordPress.VIP.FileSystemWritesDisallow.file_ops_is_writable ?> <a href="<?php echo esc_url( wp_nonce_url( remove_query_arg( array( 'delete_template', 'saved' ), add_query_arg( 'move_template', $template_type ) ), 'woocommerce_email_template_nonce', '_wc_email_nonce' ) ); ?>" class="button"> <?php esc_html_e( 'Copy file to theme', 'woocommerce' ); ?> </a> <?php endif; ?> <?php /* translators: 1: Path to template file 2: Path to theme folder */ printf( esc_html__( 'To override and edit this email template copy %1$s to your theme folder: %2$s.', 'woocommerce' ), '<code>' . esc_html( plugin_basename( $template_file ) ) . '</code>', '<code>' . esc_html( trailingslashit( basename( get_stylesheet_directory() ) ) . $template_dir . '/' . $template ) . '</code>' ); ?> </p> <div class="editor" style="display:none"> <textarea class="code" readonly="readonly" disabled="disabled" cols="25" rows="20"><?php echo esc_html( file_get_contents( $template_file ) ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents ?></textarea> </div> <?php else : ?> <p><?php esc_html_e( 'File was not found.', 'woocommerce' ); ?></p> <?php endif; ?> </div> <?php endforeach; ?> </div> <?php wc_enqueue_js( "jQuery( 'select.email_type' ).change( function() { var val = jQuery( this ).val(); jQuery( '.template_plain, .template_html' ).show(); if ( val != 'multipart' && val != 'html' ) { jQuery('.template_html').hide(); } if ( val != 'multipart' && val != 'plain' ) { jQuery('.template_plain').hide(); } }).change(); var view = '" . esc_js( __( 'View template', 'woocommerce' ) ) . "'; var hide = '" . esc_js( __( 'Hide template', 'woocommerce' ) ) . "'; jQuery( 'a.toggle_editor' ).text( view ).toggle( function() { jQuery( this ).text( hide ).closest(' .template' ).find( '.editor' ).slideToggle(); return false; }, function() { jQuery( this ).text( view ).closest( '.template' ).find( '.editor' ).slideToggle(); return false; } ); jQuery( 'a.delete_template' ).click( function() { if ( window.confirm('" . esc_js( __( 'Are you sure you want to delete this template file?', 'woocommerce' ) ) . "') ) { return true; } return false; }); jQuery( '.editor textarea' ).change( function() { var name = jQuery( this ).attr( 'data-name' ); if ( name ) { jQuery( this ).attr( 'name', name ); } });" ); } }
Changelog Changelog
Version | Description |
---|---|
1.0.0 | Introduced. |