[英]email when images change, woocommerce product
我试图在 woocommerce 产品以任何方式更改其图像时发送电子邮件。
我开始尝试获取图片库的 $_POST,但我认为我称它为错误的东西……我尝试了以下方法: $images = $_POST['image_ids']; $images = $_POST['gallery_image_ids'];
然后我将该值与当前图像 ID 进行比较: $oldImages = $product->get_gallery_image_ids();
如果它们不匹配,我将使用 wp_mail 向不同的人发送电子邮件。
我正在使用以下自定义 php 函数执行所有这些操作: add_action('pre_post_update', 'content_change_email', 10, 2); 函数 content_change_email($post_ID, $data) {
}
我认为问题源于 $images = $_POST['image_ids']; $images = $_POST['gallery_image_ids']; 代码的一部分。
有人可以让我知道画廊图像的正确元字段名称是什么吗?
我解决了我自己的问题……我使用自定义元字段来记录所有图像的 ID,包括特色图像,然后将其与当前图库图像进行比较以查看它们是否已更改,如果已更改,则更新自定义元值新号码并发送电子邮件让人们知道图片已更改。
代码如下:
// send email when images change for a product
add_action( 'woocommerce_update_product', 'imagecheck_on_product_save', 10, 1 );
function imagecheck_on_product_save( $product_id ) {
$product = wc_get_product( $product_id );
// do something with this product
$metaImages = get_post_meta( $product_id, '_gallery_image_ids', true );
$currentImages = $product->get_gallery_image_ids();
$imageIDs = get_post_thumbnail_id( $product_id );
if ($imagesIDs != "" )
{
$imageIDs = $imageIDs . ", ";
foreach($currentImages as $value){
$imageIDs = $imageIDs . $value . ", ";
}
if ( $metaImages != $imageIDs ) {
update_post_meta( $product_id, '_gallery_image_ids', esc_attr( $imageIDs ) );
global $current_user;
wp_get_current_user();
$email = $current_user->user_email;
$lastuser = $current_user->user_firstname;
if ( $product->get_sku() != "" )
{
$memail = "<pre>USER: " . $lastuser . " made the following changes:</br>
Meta gallery images: " . $metaImages . "</br>
</br>
Actual gallery images: " . $imageIDs . "
" . $memail . "</pre>";
$headers = array('Content-Type: text/html; charset=UTF-8');
$subject = "PICTURES CHANGED - SKU: " . $product->get_sku();
$to = "(insert who you want to send to here)";
wp_mail( $to, $subject, $memail, $headers );
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.