Skip to content

Commit eb28cec

Browse files
malayladuclaygriffiths
authored andcommitted
gw-advanced-merge-tags.php: Added support for the gravatar modifier to retrieve Gravatar image.
1 parent bee28e2 commit eb28cec

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

gravity-forms/gw-advanced-merge-tags.php

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,12 @@ public function handle_field_modifiers( $value, $input_id, $modifier, $field, $r
506506
return rgar( $value_array, $index );
507507
}
508508
break;
509+
case 'gravatar':
510+
if ( $field->type !== 'email' ) {
511+
break;
512+
}
513+
514+
return $this->generate_gravatar($value, $modifiers);
509515
}
510516
}
511517

@@ -543,6 +549,41 @@ public function parse_modifiers( $modifiers_str ) {
543549
return $parsed;
544550
}
545551

552+
/**
553+
* Generate a Gravatar image URL or image tag.
554+
*
555+
* @param $email
556+
* @param $modifiers
557+
*
558+
* @return string
559+
*/
560+
public function generate_gravatar( $email, $modifiers ) {
561+
$format = rgar( $modifiers, 'format' );
562+
$size = rgar( $modifiers, 'size', 64 );
563+
$default = rgar( $modifiers, 'default' );
564+
565+
$params = array();
566+
567+
if ( $default ) {
568+
$params['d'] = htmlentities( $default );
569+
}
570+
571+
if ( $size ) {
572+
$params['s'] = htmlentities($size);
573+
}
574+
575+
$base_url = 'https://www.gravatar.com/avatar';
576+
$hash = hash( 'sha256', strtolower( trim( $email ) ) );
577+
$query = http_build_query( $params );
578+
579+
$gravatar_url = sprintf( '%s/%s?%s', $base_url, $hash, $query );
580+
581+
if ( $format === 'url' ) {
582+
return $gravatar_url;
583+
}
584+
585+
return "<img src='{$gravatar_url}' alt='Gravatar Image'/>";
586+
}
546587
}
547588

548589
function gw_advanced_merge_tags( $args = array() ) {

0 commit comments

Comments
 (0)