1. AdinaG
  2. General
  3. Friday, April 19 2019, 01:21 AM
So I'm kinda stuck here and can't figure out how to get the fields to display in the email that have changed...

I have been the forum for at least the past 2-3 hours going around in circles trying to understand this...

I simply want to display the following custom fields in the body of the email if they change when the user updates their profile...

websiteurl
aboutme
phone

I did as as stated here https://www.easy-profile.com/support/custom-fields-in-admin-activation-email.html#reply-23320 and the skeleton.php file looks like this

<?php
/**
* @copyright Copyright (C) 2013 Jsn Project company. All rights reserved.
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
* @package Easy Profile
* website http://www.easy-profile.com
* Technical Support : Forum - http://www.easy-profile.com/support.html
*/

defined('_JEXEC') or die;

class PlgJsnSkeleton extends JPlugin
{
public function triggerProfileUpdate($user, $data, $changed, $isNew)
{
if(!$isNew)
{

$body=$user->name." updated user profile. \n\n";
foreach($changed as $fieldalias){
$body.=$fieldalias .": ". $data[$fieldalias] ."\n";
}

JFactory::getMailer()->sendMail(
$user->email, // Sender Mail
$user->name, // Sender Name
array( '[email protected]' ), // Receiver Mail
'Email Subject', // Subject Mail
$user->name.' updated their profile.' // Body Mail
);
}
}
}
?>


But for the life of me I do not understand WHERE or HOW I'm supposed to edit it to show the custom fields.

Every time I add something it throws an error page when I try to load the profile page.

Can someone please help me? Maybe show me an example in the code above?

Thank you!

Adina
Accepted Answer
admin Accepted Answer
Admin
Hi Adina,
- Download (at the end of docs page at http://docs.easy-profile.com/index.php/article/triggers ), install and enable (Extensions->Plugins) skeleton plugin
- Open the edit the file at /plugins/jsn/skeleton/skeleton.php
- Replace entire code with this
<?php

defined('_JEXEC') or die;

class PlgJsnSkeleton extends JPlugin
{
public function triggerProfileUpdate($user, $data, $changed, $isNew)
{
if(!$isNew)
{
$body=$user->name." updated user profile. \n\n";
foreach($changed as $fieldalias){
$body.=$fieldalias .": ". $data[$fieldalias] ."\n";
}
JFactory::getMailer()->sendMail(
$user->email, // Sender Mail
$user->name, // Sender Name
array( '[email protected]' ), // Receiver Mail
$user->name." updated user profile.", // Subject Mail
$body // Body Mail
);
}
}
}
  1. more than a month ago
  2. General
  3. # Permalink
AdinaG Accepted Answer
Pro
Content Protected
  1. more than a month ago
  2. General
  3. # 1
pat01 Accepted Answer
Pro
Hi

Would it possible to add multiple receiver email addresses? I did try them comma separated and semicolon seperated but none of them did work (no email at all was sent).

Thanks.
  1. more than a month ago
  2. General
  3. # 2
admin Accepted Answer
Admin
Hi,
at line 18 try to replace this code
array( '[email protected]' )
with
array( '[email protected]', '[email protected]','[email protected]' )
  1. more than a month ago
  2. General
  3. # 3
pat01 Accepted Answer
Pro
Hi

Works perfect, thanks.
  1. more than a month ago
  2. General
  3. # 4
nswdllc Accepted Answer
Pro
Is there a way to make this only trigger if specific fields are updated?

For example I have quite a few fields that contain various contact details. I could care less if a user updates those. But we have a few file upload fields that we want a notification when the user saves a new document to their profile.
  1. more than a month ago
  2. General
  3. # 5
admin Accepted Answer
Admin
Hi @nswdllc,
this is possible. in my code at line 9 you can replace this code
if(!$isNew)
with something like this:
if(!$isNew && in_array('FIELDALIAS',$changed) )

With this the code will be trigger only when the user is not a new user and the field with alias FIELDALIAS is changed.

NOTE: you need to replace "FIELDALIAS" text with the alias of your file type field.
  1. more than a month ago
  2. General
  3. # 6
  • Page :
  • 1


There are no replies made for this post yet.
However, you are not allowed to reply to this post.