当我尝试使用jquery或javascript添加数据时,我的选择框数据没有保存到wordpress数据库wp_usermeta和user_meta表中。第二个选择框也不在第一个选择框的更改事件中填充状态。
我在我的项目中使用woocommerce pos和woocommerce pos pro插件。 在添加或编辑新客户时。当我在第一个选择框中更改我的国家时,我已经为国家创建了两个选择框,现在为国家创建了两个选择框,当iam iam尝试向其中添加自定义选项时,它不会自动在国家/地区ID +我在国家选择框的更改事件上使用jquery的状态,它没有将数据保存在databse中。而是显示了以前存储的值。对骨干,webpack和stickit来说是非常新的,并且不了解其mvc结构,因此我需要帮助一样。
插件名称:Wooocomerce pos和woocomerce pos pro插件
文件名:tmpl-customer-edit.php(woocomerce pos pro)
<td <?php if(isset($field['colspan'])) { $i++; echo
'colspan="'.$field['colspan'].'"'; } ?>>
<?php if($key=='country'): ?>
<label for="billing_address_<?php echo $key; ?>"><?php echo
$field['label']; ?></label>
<select class="form-control country" data-handler="address"
name="billing_address[<?php echo $key; ?>]" id="billing_address_<?php
echo $key?>">
<?php //Getting Country List
foreach($get_country as $gc)
{
$con_value=$gc['name'];
$con_id=$gc['c_id'];
echo '<option
value="'.$con_value.'">'.$con_value.'</option>';
}
?>
</select>
<?php elseif($key=='state'): ?>
<label for="billing_myaddress_<?php echo $key; ?>"><?php echo
$field['label']; ?></label>
<select class="form-control state" name="billing_address[<?php echo
$key; ?>]" id="billing_address_<?php echo $key?>">
?>
<?php
foreach($get_states as $gs)
{
$state_value=$gs['name'];
$state_id=$gs['s_id'];
echo '<option
value="'.$state_value.'">'.$state_value.'</option>';
}
?>
</select>
<?php else:?>
<label for="billing_address_<?php echo $key; ?>"><?php echo
$field['label']; ?></label>
<input class="form-control" data-handler="address" type="text"
name="billing_address[<?php echo $key; ?>]" id="billing_address_<?php
echo $key; ?>">
<?php endif; ?>
</td>
app.build.js:-
================= / ********************自定义通话************************** //
bb.Stickit.addHandler({
selector: 'select[data-handler="address"]',
onGet: function( value, options ){
var key = options.selector.match(/\w+\[(\w+)\]/)[1];
if( _(value).has(key) ){
return value[key];
} else {
return value;
}
},
onSet: function( value, options ){
console.log('MY VALUE IS'+value);
var key = options.selector.match(/\w+\[(\w+)\]/)[1];
console.log('MY KEY'+key);
var address = options.view.model.get(options.observe);
console.log('MY ADDRESS IS'+address);
address = address || {};
address[key] = value;
console.log('MY ADDRESS'+address[key]);
//CUSTOM JQUERY
//CUSTOM JQUERY
return address;
}
});