function checkForInvalidData($post) { global $page; if ('product' != $post->post_type) { return; } if ('auto-draft' == $post->post_status) { return; } if (!get_option('wpla_enable_missing_details_warning')) { return; } $product = get_product($post); $invalid_product_ids = array(); $invalid_skus = array(); // SKU if ($product->sku && !WPLA_FeedValidator::isValidSKU($product->sku)) { $invalid_skus[] = $product->sku; } // UPC / EAN $amazon_product_id = get_post_meta($product->id, '_amazon_product_id', true); if ($amazon_product_id && !WPLA_FeedValidator::isValidEANorUPC($amazon_product_id)) { $invalid_product_ids[] = $amazon_product_id; } // variable product if ($product->product_type == 'variable') { // get variations $variation_ids = $product->get_children(); foreach ($variation_ids as $variation_id) { $_product = get_product($variation_id); $var_info = " (#{$variation_id})"; // SKU if ($_product->sku && !WPLA_FeedValidator::isValidSKU($_product->sku)) { $invalid_skus[] = $_product->sku . $var_info; } // UPC / EAN $amazon_product_id = get_post_meta($variation_id, '_amazon_product_id', true); if ($amazon_product_id && !WPLA_FeedValidator::isValidEANorUPC($amazon_product_id)) { $invalid_product_ids[] = $amazon_product_id . $var_info; } } // foreach variation } // variable product // show warning $errors_msg = ''; if (!empty($invalid_skus)) { $errors_msg .= __('Warning: This SKU is not valid:', 'wpla') . ' <b>' . htmlspecialchars(join($invalid_skus, ', ')) . '</b> - only letters, numbers, dashes and underscores are allowed.<br>'; } if (!empty($invalid_product_ids)) { $errors_msg .= __('Warning: This product ID does not seem to be a valid UPC / EAN:', 'wpla') . ' <b>' . htmlspecialchars(join($invalid_product_ids, ', ')) . '</b><br>'; $errors_msg .= __('Valid UPCs have 12 digits, EANs have 13 digits.', 'wpla') . '<br>'; } if (!empty($errors_msg)) { self::showMessage($errors_msg, 2, 1); } }