The purpose: To decode cloudflare email
The problem: Uncaught Error: Call to a member function getAttribute() on null
Sounds as easy as using is_null() but it doesn't work. Tried is_object() but i still can't get out of the error.
Objective:
$field['value'] = cfDecodeEmail($a->getAttribute("data-cfemail"));
code returns the email address which I have assigned into an ACF field.
So now any field that doesn't have the value returns the error mentioned above on getAttribute().
So if this would point you towards what I'm trying to achieve:
if (is_null()) {
echo '';
} else {
$field['value'] = cfDecodeEmail($a->getAttribute("data-cfemail"));
}
The whole code:
add_filter('acf/load_field/name=application_email', function($field) {
$howtoapply = get_field('howtoapply');
if( get_post_meta($post->ID, 'application_email', true) == '' ) {
$apply_link = get_field('howtoapply');
$link = $apply_link;
libxml_use_internal_errors(true);
$dom = new DOMDocument();
@$dom->loadHTML($link);
$dom->loadHTML($link);
foreach ($dom->getElementsByTagName("a") as $a) {
}
function cfDecodeEmail($encodedString){
$k = hexdec(substr($encodedString,0,2));
for($i=2,$email='';$i<strlen($encodedString)-1;$i+=2){
$email.=chr(hexdec(substr($encodedString,$i,2))^$k);
}
return $email;
}
$field['value'] = cfDecodeEmail($a->getAttribute("data-cfemail"));
}
return $field;
});
I don't know what is missing from this code.
Thanks.
$field['value'] = cfDecodeEmail( $a->getAttribute( 'data-cfemail' ) );
You have to check null
or is_object
on object $a
, it will be done like this.
$field['value'] = ( ! is_null( $a ) && is_object( $a ) ) ? cfDecodeEmail( $a->getAttribute( 'data-cfemail' ) ) : '';
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.