gpt4 book ai didi

wordpress - Woocommerce 自定义产品文本

转载 作者:行者123 更新时间:2023-12-04 15:22:58 25 4
gpt4 key购买 nike

我正在尝试使用 woocommerce 创建一个可变产品,其中将包含特定于每个产品的用户输入文本。为此,我正在检测“custom_text”类型并显示文本输入字段,而不是正常的选择选项下拉列表。

这是在 variable.php 中:

<form action="<?php echo esc_url( $product->add_to_cart_url() ); ?>" class="variations_form cart" method="post" enctype='multipart/form-data' data-product_id="<?php echo $post->ID; ?>">

<?php
$loop = 0; foreach ( $attributes as $name => $options ) : $loop++;

<?php if(is_array($options) && $options[0] == "custom_text") : //Name to be added to product ?>
<label for="<?php echo sanitize_title($name); ?>"><?php echo $woocommerce->attribute_label($name); ?></label></td>
<input type="text" class="fullwidth req" id="<?php echo esc_attr( sanitize_title($name) ); ?>" name="attribute_<?php echo sanitize_title($name); ?>"/>
<?php else : ?>
...

这是有效的 除了 当您进入购物车页面时,它会将输入显示为所有小写,并删除空格(更改为连字符)等。

有谁知道你可以在哪里 Hook 和/或覆盖这种行为?我一直在尝试一切都无济于事。

谢谢

最佳答案

如果有人想知道,我找到了答案。

            // Get value from post data
// Don't use woocommerce_clean as it destroys sanitized characters
$value = sanitize_title( trim( stripslashes( $_REQUEST[ $taxonomy ] ) ) );

前一个位于 woocommerce-functions.php 中的第 339 行。
需要改为:
 $value = trim( stripslashes( $_REQUEST[ $taxonomy ] ) ) 

现在只需正确覆盖此文件即可。我从 woocommerce-functions.php 中复制了原始函数并将其添加到我的主题的functions.php 中。然后我更改了它,以便它不会清理用户输入。

这是我添加到主题的functions.php 中的内容:
add_action( 'init', 'override_add_to_cart_action' );
function override_add_to_cart_action( $url = false ) { // Original function is woocommerce_add_to_cart_action()
// ... full function above and below
$value = trim( stripslashes( $_REQUEST[ $taxonomy ] ) );
// ...
}

通过这样做,我们不必更改任何核心文件,从而允许我们在需要时更新插件。 :)

关于wordpress - Woocommerce 自定义产品文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20862740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com