簡體   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