php-在Woocommerce的单个产品页面中添加产品说明字段
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-在Woocommerce的单个产品页面中添加产品说明字段,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3596字,纯文字阅读大概需要6分钟。
内容图文
我想在单个产品详细信息页面中为用户创建自定义订单注释.这可以使用没有插件的PHP来做.我已附上屏幕截图和网站URL供参考.
已在function.php中尝试使用此代码,其在结帐页面上的工作不在产品详细信息页面上.任何人都可以帮助我实现这一目标.
add_action('woocommerce_after_order_notes', 'customise_checkout_field');
function customise_checkout_field($checkout)
{
echo '<div id="customise_checkout_field"><h2>' . __('Heading') . '</h2>';
woocommerce_form_field('customised_field_name', array(
'type' => 'text',
'class' => array(
'my-field-class form-row-wide'
) ,
'label' => __('Customise Additional Field') ,
'placeholder' => __('Guidence') ,
'required' => true,
) , $checkout->get_value('customised_field_name'));
echo '</div>';
}
解决方法:
要使其按需工作,请尝试以下代码,其中产品说明将在产品元数据下方的产品页面中显示.在我的代码中,我已在“添加到购物车”窗体中添加了一个隐藏字段,并且一些jQuery代码会将文本区域的内容动态添加到该隐藏字段中.这样,产品注释便可以随后作为自定义数据保存在购物车项目中.
现在,此答案将无法处理按顺序保存数据并在结帐后显示数据,因为这对于该问题而言并不明确且范围太广.
// Add a custom product note below product meta in single product pages
add_action('woocommerce_single_product_summary', 'custom_product_note', 100 );
function custom_product_note() {
echo '<br><div>';
woocommerce_form_field('customer_note', array(
'type' => 'textarea',
'class' => array( 'my-field-class form-row-wide') ,
'label' => __('Product note') ,
'placeholder' => __('Add your note here, please…') ,
'required' => false,
) , '');
echo '</div>';
//
?>
<script type="text/javascript">
jQuery( function($){
$('#customer_note').on( 'input blur', function() {
$('#product_note').val($(this).val());
});
});
</script>
<?php
}
// Custom hidden field in add to cart form
add_action( 'woocommerce_before_add_to_cart_button', 'hidden_field_before_add_to_cart_button', 5 );
function hidden_field_before_add_to_cart_button(){
echo '<input type="hidden" name="product_note" id="product_note" value="">';
}
// Add customer note to cart item data
add_filter( 'woocommerce_add_cart_item_data', 'add_product_note_to_cart_item_data', 20, 2 );
function add_product_note_to_cart_item_data( $cart_item_data, $product_id ){
if( isset($_POST['product_note']) && ! empty($_POST['product_note']) ){
$product_note = sanitize_textarea_field( $_POST['product_note'] );
$cart_item_data['product_note'] = $product_note;
}
return $cart_item_data;
}
代码进入您的活动子主题(或活动主题)的function.php文件中.经过测试和工作.
如果要在添加到购物车按钮后显示此字段,请使用以下较短的代码:
// Add a custom product note after add to cart button in single product pages
add_action('woocommerce_after_add_to_cart_button', 'custom_product_note', 10 );
function custom_product_note() {
echo '<br><div>';
woocommerce_form_field('product_note', array(
'type' => 'textarea',
'class' => array( 'my-field-class form-row-wide') ,
'label' => __('Product note') ,
'placeholder' => __('Add your note here, please…') ,
'required' => false,
) , '');
echo '</div>';
}
// Add customer note to cart item data
add_filter( 'woocommerce_add_cart_item_data', 'add_product_note_to_cart_item_data', 20, 2 );
function add_product_note_to_cart_item_data( $cart_item_data, $product_id ){
if( isset($_POST['product_note']) && ! empty($_POST['product_note']) ){
$product_note = sanitize_textarea_field( $_POST['product_note'] );
$cart_item_data['product_note'] = $product_note;
}
return $cart_item_data;
}
代码进入您的活动子主题(或活动主题)的function.php文件中.经过测试和工作.
可通过以下方式访问此自定义购物车项目数据:
foreach( WC()->cart->get_cart() as $cart_item ){
if( isset($cart_item['product_note']) )
echo $cart_item['product_note'];
}
内容总结
以上是互联网集市为您收集整理的php-在Woocommerce的单个产品页面中添加产品说明字段全部内容,希望文章能够帮你解决php-在Woocommerce的单个产品页面中添加产品说明字段所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。