Imports several thousand thumbnail images into existing products. For this purpose, I used the attribute that each product "featured-images" has, in which there is a link to the product.
function alterImageSRC($image, $attachment_id, $size, $icon){
global $product;
$optimex_featured = $product->get_attribute( 'pa_featured-images' );
$image[0] = "https://website.com/wp-content/uploads/thumbs/$optimex_featured";
return $image;
}
add_filter('wp_get_attachment_image_src', 'alterImageSRC', 10, 4);
The code works fine and sets the thumbnails, but when I log into the admin system I get an error:
Uncaught Error: Call to a member function get_attributes() on null.
what's going on? What am I doing wrong?
CodePudding user response:
I can't see a call to get_attributes()
in your code, which is what your error is referring to, however, if that is a typo then the error is referring to the use of $product->get_attribute(...)
- in this instance your $product
is apparently null
. You could account for null values by doing something like the following:
function alterImageSRC($image, $attachment_id, $size, $icon){
global $product;
$url = 'https://some.default/placeholder/image_url';
if (!is_null($product)) {
$optimex_featured = $product->get_attribute( 'pa_featured-images' );
$url = "https://website.com/wp-content/uploads/thumbs/$optimex_featured";
}
$image[0] = $url;
return $image;
}
add_filter('wp_get_attachment_image_src', 'alterImageSRC', 10, 4);