Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 关于产品变化的附加信息_Php_Wordpress_Woocommerce_Product_Custom Fields - Fatal编程技术网

Php 关于产品变化的附加信息

Php 关于产品变化的附加信息,php,wordpress,woocommerce,product,custom-fields,Php,Wordpress,Woocommerce,Product,Custom Fields,我有一个Woocommcerce的Wordpress网站。我想添加一些额外的字段,让用户能够个性化他们的产品(一些文本输入,让他们写任何他们想要的)。我认为这需要通过自定义属性来完成,但我不确定 我已尝试添加一个额外的属性类型: add_filter("product_attributes_type_selector" , function( $array ){ $array["textfield"] = __( 'Textfield', 'woocommerce' ); ret

我有一个Woocommcerce的Wordpress网站。我想添加一些额外的字段,让用户能够个性化他们的产品(一些文本输入,让他们写任何他们想要的)。我认为这需要通过自定义属性来完成,但我不确定

我已尝试添加一个额外的属性类型:

add_filter("product_attributes_type_selector" , function( $array ){
    $array["textfield"] = __( 'Textfield', 'woocommerce' );
    return $array ;
});
我不知道该从哪里着手,也不知道这是否是正确的方法


重要提示:我不想使用任何插件,因此不建议使用任何插件。请使用
woocommerce\u-before\u-add\u-to\u-cart\u按钮
操作挂钩中挂钩的自定义功能,该功能将在数量字段前添加自定义输入文本字段,并仅在可变产品上添加到购物车按钮:

// Adding a custom input text field before quantities field and add to cart button on variable products only
add_action( 'woocommerce_before_add_to_cart_button', 'custom_product_fields' , 10, 0 );
function custom_product_fields() {
    global $product;

    if( ! $product->is_type( 'variable' ) ) return; // Only for variable products

    echo '<div class="product-custom-fields">
        <label class="my-custom-field1" for="custom_textfield1">'.__( 'Label text: ', 'woocommerce' ).'<br>
            <input type="text" name="custom_textfield1" class="input-text" placeholder="'.__( 'Enter a text', 'woocommerce' ).'" value="">
        </label>
    </div>
    <br clear="all">';
}
//在数量字段之前添加自定义输入文本字段,并仅在可变产品上添加到购物车按钮
添加操作(“添加到购物车按钮之前的woocommerce”和“自定义产品字段”,10,0);
函数自定义\产品\字段(){
全球$产品;
如果(!$product->is_type('variable'))返回;//仅适用于可变产品
回声'
“.”(“标签文本:”,“woocommerce”)。

; }
代码位于活动子主题(或主题)的function.php文件或任何插件文件中

经过测试,工作正常……因此您将获得如下结果:

如果要在“添加到购物车”按钮下显示此自定义字段,请在“添加到购物车”按钮后使用动作挂钩

但是,当添加到购物车时,您需要在购物车对象中保存该自定义字段,并在购物车和结帐页面中显示该字段


是的,这是一个不错的解决方案,这也需要保存为产品元并添加到订单中,最终由我自己决定,但如果将来有人需要,这是一个很好的主题。谢谢@LoicTheAztecI有类似的完整答案,所以如果你搜索一下,你会发现所有的过程和钩子…