WC_Settings_Emails::email_font_family()publicWC 1.0

Creates the email font family field with custom font family applied to each option.

Method of the class: WC_Settings_Emails{}

No Hooks.

Return

null. Nothing (null).

Usage

$WC_Settings_Emails = new WC_Settings_Emails();
$WC_Settings_Emails->email_font_family( $value );
$value(array) (required)
Field value array.

WC_Settings_Emails::email_font_family() code WC 9.7.1

<?php
public function email_font_family( $value ) {
	$option_value = $value['value'];
	// This is a temporary fix to prevent using custom fonts without fallback
	$custom_fonts = null; // $this->get_custom_fonts();

	?>
	<tr class="<?php echo esc_attr( $value['row_class'] ); ?>">
		<th scope="row" class="titledesc">
			<label for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo esc_html( $value['title'] ); ?></label>
		</th>
		<td class="forminp forminp-<?php echo esc_attr( sanitize_title( $value['type'] ) ); ?>">
		<script type="text/javascript">
			function renderWithFont( node ) {
				if ( ! node.element || ! node.element.value ) return node.text;
				var $wrapper = jQuery( '<span></span>' );
				$wrapper.css( {'font-family': node.element.dataset['font-family'] || node.element.value} );
				$wrapper.text( node.text );
				return $wrapper;
			}
			function fontsSelect( selector ) {
				jQuery( selector ).selectWoo( {
					minimumResultsForSearch: Infinity,
					templateResult: renderWithFont
				} );
			}
			jQuery( document.body )
				.on( 'wc-enhanced-select-init', function() {
					fontsSelect( '#<?php echo esc_js( $value['id'] ); ?>' );
				} );
			</script>
			<select
				name="<?php echo esc_attr( $value['field_name'] ); ?>"
				id="<?php echo esc_attr( $value['id'] ); ?>"
				>
				<optgroup label="<?php echo esc_attr__( 'Standard fonts', 'woocommerce' ); ?>">
					<?php
					foreach ( EmailFont::$font as $key => $font_family ) {
						?>
						<option
							value="<?php echo esc_attr( $key ); ?>"
							data-font-family="<?php echo esc_attr( $font_family ); ?>"
							<?php selected( $option_value, (string) $key ); ?>
						><?php echo esc_html( $key ); ?></option>
						<?php
					}
					?>
				</optgroup>
				<?php if ( $custom_fonts ) : ?>
					<optgroup label="<?php echo esc_attr__( 'Custom fonts', 'woocommerce' ); ?>">
						<?php
						foreach ( $custom_fonts as $key => $val ) {
							?>
						<option
							value="<?php echo esc_attr( $key ); ?>"
							<?php selected( $option_value, (string) $key ); ?>
						><?php echo esc_html( $val ); ?></option>
							<?php
						}
						?>
					</optgroup>
				<?php endif; ?>
			</select>
		</td>
	</tr>
	<?php
}