如何防止在Wordpress中删除textarea中的换行符?

时间:2018-02-26 07:50:11

标签: php wordpress woocommerce

我拥有一个在Wordpress + Woocommerce上运行的电子商务商店。客户可以通过文本字段提供文本来自定义其产品。但是,当他们点击购买按钮时,文本字段内的所有换行符都会被删除。

所以如果我输入这个:
第1行 第2行 第3行

结果将是:第1行第2行第3行

这是一个主要问题,我一直试图修复它而没有成功。我找到了一些解决方案,但我对PHP几乎没有任何了解,所以我无法使用像nl2br()方法那样的任何PHP解决方案。我也尝试过CSS和jQuery,但这也不起作用。

我知道创建这些文本字段的PHP文件位于何处。请参阅下面的内容。是否有可能在那里放一些东西以防止断线消除?

<?php foreach ( $addon['options'] as $key => $option ) :
$addon_key     = 'addon-' . sanitize_title( $addon['field-name'] );
$option_key    = empty( $option['label'] ) ? $key : sanitize_title( $option['label'] );
$current_value = isset( $_POST[ $addon_key ] ) && isset( $_POST[ $addon_key ][ $option_key ] ) ? wc_clean( $_POST[ $addon_key ][ $option_key ] ) : '';
$price = apply_filters( 'woocommerce_product_addons_option_price',
    $option['price'] > 0 ? '(' . wc_price( get_product_addon_price_for_display( $option['price'] ) ) . ')' : '',
    $option,
    $key,
    'custom_textarea'
);
?>

<p class="form-row form-row-wide addon-wrap-<?php echo sanitize_title( $addon['field-name'] ); ?>">
    <?php if ( ! empty( $option['label'] ) ) : ?>
        <label><?php echo wptexturize( $option['label'] ) . ' ' . $price; ?></label>
    <?php endif; ?>
    <textarea type="text" class="input-text addon addon-custom-textarea" data-raw-price="<?php echo esc_attr( $option['price'] ); ?>" data-price="<?php echo get_product_addon_price_for_display( $option['price'] ); ?>" name="<?php echo $addon_key ?>[<?php echo $option_key; ?>]" rows="4" cols="20" <?php if ( ! empty( $option['max'] ) ) echo 'maxlength="' . $option['max'] .'"'; ?>><?php echo esc_textarea( $current_value ); ?></textarea>
</p>

1 个答案:

答案 0 :(得分:0)

您应该使用wc_clean()而不是wc_sanitize_textarea()。此方法清理textarea输入并保留换行符。

可以在WooCommerce wc_sanitize_textarea() documentation找到更多信息。