8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

WooCommerce 产品 - 始终确保 SKU 包含 13 位数字

SingleNegationElimination 3月前

97 0

当我们在 WooCommerce 中创建或更新产品时,如果 SKU(_sku)字段少于 13 位数字,我们必须填写零以始终达到 13 位数字。例如,如果字段不包含任何内容,...

当我们在 WooCommerce 中创建或更新产品时,如果 SKU(_sku)字段少于 13 位数字,我们必须填写零以始终达到 13 位数字。

  • p2

  • p3

  • p4

  • p5

我有以下代码,部分可行,这意味着它可以有效地调整后端的数字,但当我在前端根据 SKU 搜索产品时,我找不到该产品,所以我猜它不能正常工作。有人可以帮忙吗?谢谢

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);
帖子版权声明 1、本帖标题:WooCommerce 产品 - 始终确保 SKU 包含 13 位数字
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由SingleNegationElimination在本站《wordpress》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 从 WooCommerce 3 开始,您应该使用 WC_Product set_sku() setter 方法和管理产品相关的挂钩来调整产品 SKU,如下所示:

    function ensure_13_digit_sku( $sku ) {
        return str_pad($sku, 13, '0', STR_PAD_LEFT);
    }
    
    add_action('woocommerce_admin_process_product_object', 'pre_process_product_sku');
    function pre_process_product_sku( $product ) {
        $sku = isset($_POST['_sku']) ? wc_clean( wp_unslash($_POST['_sku']) ) : '';
    
        $product->set_sku( ensure_13_digit_sku($sku) );
    }
    
    add_action('woocommerce_admin_process_variation_object', 'pre_process_variation_sku');
    function pre_process_variation_sku( $variation, $i ) {
        $sku = isset($_POST['variable_sku'][$i]) ? wc_clean( wp_unslash($_POST['variable_sku'][$i]) ) : '';
    
        $variation->set_sku( ensure_13_digit_sku($sku) );
    }
    

    代码位于活动子主题(或活动主题)的 functions.php 文件中。它应该可以工作。

    尽量避免使用 WordPress 帖子元函数和钩子,因为它们不会刷新或同步数据。

返回
作者最近主题: