我正在用WordPress,WooCommerce和一个叫做店面的主题来构建一个小的网络商店。我想添加客户端在产品页面本身上为产品供应商添加自定义注释的能力。
这张便条是可选的。它是有选择地刺绣一个个人信息的产品,一件衣服。
发布于 2019-03-19 21:29:47
扩展WordPress和WooCommerce的最佳方法是使用钩子。要在产品区域添加自定义选项字段,可以使用以下钩子:
在您的functions.php s.php上,您可以添加以下代码:
/* create a new product field*/
add_action( 'woocommerce_product_options_advanced', 'personalization_product_options_adv' );
function personalization_product_options_adv() {
echo '';
woocommerce_wp_textarea_input( array(
'id' => 'product_personalization_note',
'value' => get_post_meta( get_the_ID(), 'product_personalization_note', true ),
'label' => 'Personalization Note',
'desc_tip' => true,
'description' => 'Allow product personalization for select products',
) );
echo '';
}
/* save & update the changes*/
add_action( "woocommerce_process_product_meta", "personalization_save_fields" );
function personalization_save_fields( $post_id ) {
// grab the custom data from $_POST
$product_personalization_note = isset( $_POST[ 'product_personalization_note' ] ) ? sanitize_text_field( $_POST[ 'product_personalization_note' ] ) : '';
// grab the product
$product = wc_get_product( $post_id );
// save the custom data using WooCommerce built-in functions
$product->update_meta_data( 'product_personalization_note', $product_personalization_note );
//save
$product->save();
}
/* display the new field on single product pages */
function woocommerce_custom_fields_display() {
global $post;
$product = wc_get_product($post->ID);
$custom_fields_woocommerce_title = $product->get_meta('product_personalization_note');
if ($custom_fields_woocommerce_title) {
printf(
'%s',
esc_html($custom_fields_woocommerce_title)
);
}
}
add_action('woocommerce_before_add_to_cart_button', 'woocommerce_custom_fields_display');要在WooCommerce发送的前端或电子邮件中检索这些数据,可以使用常规的到达_帖子_元()函数,如下所示:
$product_additional_note = get_post_meta( get_the_ID(), 'product_additional_note ', true );来源:
https://wordpress.stackexchange.com/questions/332099
复制相似问题