我可以看到这部分由以下代码输出:
<?php do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text ); ?>
行动woocommerce_email_before_order_table位于文件woocommerce / includes / gateways / class-wc-gateway-bacs.php
// Customer Emails
add_action( 'woocommerce_email_before_order_table', array( $this, 'email_instructions' ), 10, 3 );
电子邮件说明位于同一文件中:
/**
* Add content to the WC emails.
*
* @access public
* @param WC_Order $order
* @param bool $sent_to_admin
* @param bool $plain_text
* @return void
*/
public function email_instructions( $order, $sent_to_admin, $plain_text = false ) {
if ( ! $sent_to_admin && 'bacs' === $order->payment_method && $order->has_status( 'on-hold' ) ) {
if ( $this->instructions ) {
echo wpautop( wptexturize( $this->instructions ) ) . PHP_EOL;
}
$this->bank_details( $order->id );
}
}
我感兴趣的是:
/**
* Get bank details and place into a list format
*/
private function bank_details( $order_id = '' ) {
if ( empty( $this->account_details ) ) {
return;
}
echo '<h2>' . __( 'Our Bank Details', 'woocommerce' ) . '</h2>' . PHP_EOL;
$bacs_accounts = apply_filters( 'woocommerce_bacs_accounts', $this->account_details );
if ( ! empty( $bacs_accounts ) ) {
foreach ( $bacs_accounts as $bacs_account ) {
$bacs_account = (object) $bacs_account;
if ( $bacs_account->account_name || $bacs_account->bank_name ) {
echo '<h3>' . implode( ' - ', array_filter( array( $bacs_account->account_name, $bacs_account->bank_name ) ) ) . '</h3>' . PHP_EOL;
}
echo '<ul class="order_details bacs_details">' . PHP_EOL;
// BACS account fields shown on the thanks page and in emails
$account_fields = apply_filters( 'woocommerce_bacs_account_fields', array(
'account_number'=> array(
'label' => __( 'Account Number', 'woocommerce' ),
'value' => $bacs_account->account_number
),
'sort_code' => array(
'label' => __( 'Sort Code', 'woocommerce' ),
'value' => $bacs_account->sort_code
),
'iban' => array(
'label' => __( 'IBAN', 'woocommerce' ),
'value' => $bacs_account->iban
),
'bic' => array(
'label' => __( 'BIC', 'woocommerce' ),
'value' => $bacs_account->bic
)
), $order_id );
foreach ( $account_fields as $field_key => $field ) {
if ( ! empty( $field['value'] ) ) {
echo '<li class="' . esc_attr( $field_key ) . '">' . esc_attr( $field['label'] ) . ': <strong>' . wptexturize( $field['value'] ) . '</strong></li>' . PHP_EOL;
}
}
echo '</ul>';
}
}
}
我想为h2,h3和li元素添加一些内联样式,以便在电子邮件中对它们进行样式化。如果此函数输出结果并且不返回它并且不将数据存储在变量中,如何使用过滤器(或更新后不丢失更改的其他方法)?
我可以在电子邮件中看到h2和h3中有一些内联样式,但我无法理解它们的来源。
我将不胜感激任何帮助。
答案 0 :(得分:1)
您可以尝试为电子邮件模板中使用的所有H2和H3标记添加一些自定义样式。我通过添加内联样式(可能就像你做的那样)成功地设计了H2和H3标签,但BACS细节不包含在模板中,它们是由你所指的外部函数生成的。
要实现此目的,请打开文件email-header.php(在将其复制到自定义主题文件夹之后)并在结束标头()之前添加以下代码:
<style>h2,h3 { font-size: 14px !important; color: #000 !important; }</style>
这将确保H2和H3标签使用14px字体大小和#000颜色设置样式(使用!important规则覆盖内联样式)。 Offcours你可以根据自己的意愿修改样式。
虽然有关于全球样式与Gmail不相称的评论,但在使用Gmail阅读电子邮件时,样式似乎应用得很好。