• Resolved brandonpeatasher

    (@brandonpeatasher)


    Long-time user, love this plugin!

    I’m running into an issue when trying to output custom icons. I can get them to display, but I also get a PHP warning:

    Warning: Array to string conversion in /srv/…/plugins/advanced-custom-fields-font-awesome/fields/acf-font-awesome-v6.php on line 355

    • This happens even if all I do is store the field as a variable, not even output it ($icon = get_field('fa');)
    • Works totally fine with regular icons and brands. Only custom kit icons cause the error.
    • Only an issue with Icon Object output, other return values are fine.
    • Works in PHP 7.4, becomes a problem in 8.0 and above.
    • Current on WP and plugins, deactivated everything else in case of conflicts.
    • Running Classic Editor.
Viewing 7 replies - 1 through 7 (of 7 total)
  • Plugin Author Matt Keys

    (@mattkeys)

    Earlier versions of this plugin got the SVG path from the GraphQL “path” field of an iconUpload object. However “path” was deprecated in favor of pathData, which is similar to path but it can have more than one path to support things like duotone icons.

    The error you are seeing sounds related to this, it is trying to output the value of path, but the value of path seems to be an array.

    How the new version of this plugin handles this, is that it json_encode’s those arrays.

    I suspect if you were to unselect the icon > save your page > then reselect the icon >and save again: the problem would go away.

    Are you able to confirm?

    Thread Starter brandonpeatasher

    (@brandonpeatasher)

    Hmm, that didn’t do it. Here’s the icon in question. This is the SVG I get from the kit when I download it. I have others that look similar in code and also throw errors in the plugin.

    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 80V432a48 48 0 0 0 48 48H464a48 48 0 0 0 48-48V80a48 48 0 0 0 -48-48H48A48 48 0 0 0 0 80zM320 64V170.7H192V64zM480 309.3H352V202.7H480zM32 202.7H160V309.3H32zM160 64V170.7H32V80A16 16 0 0 1 48 64zM32 432V341.3H160V448H48A16 16 0 0 1 32 432zm160 16V341.3H320V448zm160 0V341.3H480V432a16 16 0 0 1 -16 16zM480 170.7H352V64H464a16 16 0 0 1 16 16z"/></svg>
    Plugin Author Matt Keys

    (@mattkeys)

    Thanks for the example SVG. I am able to reproduce the error but I’m not sure of the cause yet.

    Thread Starter brandonpeatasher

    (@brandonpeatasher)

    Hey, just knowing I’m not a moron is a start! Thanks for looking into it, lemme know what you find.

    Plugin Author Matt Keys

    (@mattkeys)

    Okay so I looked at this some more today. I am manually building an SVG element from the SVG paths. And things are getting complicated now that I added duotone support in this area and there could be multiple paths.

    Looking back at the FontAwesome API, I am making things harder on myself than I need to. They have a prepared SVG html element that can be returned from the API so I don’t have to build it myself.

    I’ve added functionality to use this going forward, but already selected custom icons won’t be able to use it until they are reselected. So I also bug fixed the underlying issue with how I was building those SVGs manually and kept it as a fallback.

    The new version is not out yet, can you do some testing on it to validate that it fixes the issue you were seeing and doesn’t cause any new problems for you?

    You can get it here:

    https://wordpress.org/plugins/advanced-custom-fields-font-awesome/advanced/

    Under ‘Advanced Options’ look for version 4.0.8

    Thanks, let me know how it goes!

    Thread Starter brandonpeatasher

    (@brandonpeatasher)

    Looks like that did it! Thanks for the weekend work!!

    Plugin Author Matt Keys

    (@mattkeys)

    Thanks for testing!

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘Custom icons: Array to string conversion on line 355’ is closed to new replies.