繁体   English   中英

如何防止在Wordpress中删除文本区域中的换行符?

[英]How to prevent the removal of line breaks in a textarea in Wordpress?

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

因此,如果我输入以下内容:
1号线
2号线
3号线

结果将是: Line 1 Line 2 Line 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>

代替使用wc_clean()您应该使用wc_sanitize_textarea() 此方法可以使textarea输入保持卫生并保留换行符。

可以在WooCommerce wc_sanitize_textarea()文档中找到更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM