我下面有一个代码,它在产品的woocommerce快速编辑菜单中创建了一个自定义框,其中包含一个html下拉列表,其中包含“品牌”属性的所有值。
- 品牌属性照片:
- 快速编辑菜单中的自定义下拉html的照片(在红色框中突出显示):
问题:
如果我已经在产品的后端设置了至少一个品牌属性值,那么代码将按预期工作,并添加我在快速菜单的下拉菜单中选择的值,否则如果我还没有为我正在快速编辑的产品中的品牌属性设置值,那么在更新快速编辑菜单后,该值不会出现在产品的后端。
验证码:
这是我在主题的functions.php中的代码:
function my_quick_edit_save_function($post_id) {
if (isset($_REQUEST['post_ID']) == $post_id) {
// Retrieve the selected brand value from the quick edit form
$selected_brand = isset($_REQUEST['my_brand']) ? sanitize_text_field($_REQUEST['my_brand']) : '';
$product_id = $post_id; // Replace with the actual product ID
$attribute_slug = 'pa_brand'; // Replace with the desired attribute slug
// Assign the color attribute value to the product
wp_set_object_terms($product_id, $value, $attribute_slug, true);
}
}
add_action('save_post', 'my_quick_edit_save_function');
function my_custom_quick_edit_fields() {
$taxonomy = 'pa_brand'; // Replace with the actual taxonomy name of the attribute
$terms = get_terms(array(
'taxonomy' => $taxonomy,
'hide_empty' => false,
));
if (!empty($terms)) {
echo '<select name="my_brand">';
echo '<option value="my_brand">' . __('Select Brand', 'woocommerce') . '</option>';
foreach ($terms as $term) {
echo '<option value="' . $term->slug . '">' . $term->name . '</option>';
}
echo '</select>';
}
}
add_action('woocommerce_product_quick_edit_end', 'my_custom_quick_edit_fields', 10);
问题:
- 如何修改此代码,使其添加我在快速编辑菜单中的自定义下拉列表中选择的值,即使我尚未在产品的后端设置任何品牌属性值?
- 提前感谢您的时间和努力!*
1条答案
按热度按时间2guxujil1#
您可以尝试更改my_quick_edit_保存函数,方法是将$_REQUEST if中的代码替换为:
确保woocommerce的ATTRIBUTES部分的属性slug是'brand',否则'pa_brand'分类slug将不起作用!