- Например, если поле ничего не содержит, то нам следует добавить в поле 13 нулей.
- Например, если поле содержит 123456, то перед ним нужно добавить 7 нулей.
- Например, если поле содержит 123456789, то перед ним нужно добавить 3 нуля.
- Например, если поле содержит 1234567891234, то нам не нужно ничего делать, поскольку оно содержит 13 цифр.
function ensure_13_digit_sku($sku) {
return str_pad($sku, 13, '0', STR_PAD_LEFT);
}
function ensure_sku_length_on_save($post_id, $post, $update) {
if ($post->post_type !== 'product') {
return;
}
$sku = get_post_meta($post_id, '_sku', true);
if (!$sku || strlen($sku) < 13) {
$new_sku = ensure_13_digit_sku($sku);
update_post_meta($post_id, '_sku', $new_sku);
}
}
add_action('save_post', 'ensure_sku_length_on_save', 10, 3);
Подробнее здесь: https://stackoverflow.com/questions/787 ... -13-digits
Мобильная версия