• Resolved viktazon

    (@viktazon)


    Hi there!
    Function tribe_get_event_website_url($event) outputs the url to the site.
    Tell me please what function will help me get a label (label-text)?
    I hope for your help. Thanks

Viewing 15 replies - 1 through 15 (of 17 total)
  • Plugin Support tristan083

    (@tristan083)

    Hi @viktazon ,

    Thank you for reaching out.

    Kindly find the link below, which may be of interest to you.

    tribe_get_event_website_link_label

    Thread Starter viktazon

    (@viktazon)

    Thanks for answer!
    But tribe_get_event_website_link() and apply_filters( ‘tribe_get_event_website_link_label’, $label ) it is assumed that the $label variable is known.
    How do I get the $label variable?

    Plugin Support tristan083

    (@tristan083)

    Hi @viktazon ,

    Thank you for your message.

    Looking into the underlying code of the tribe_get_event_website_link() function in \wp-content\plugins\the-events-calendar\src\functions\template-tags\link.php, by default, the website URL becomes the label of the link that’s retuned if none was supplied.

    The tribe_get_event_website_link_label($label) filter hook allows you to change the label to something else.

    Thread Starter viktazon

    (@viktazon)

    Thank you.
    We need exactly the $label that the user specified when creating the event. I understand that I can replace it with my own, but it is the user-defined one that is needed, because the label text may be different.
    In link.php the incoming variable $label is used, its original value is needed.
    I need to output the value of the $label variable

    Plugin Support tristan083

    (@tristan083)

    Hi @viktazon ,

    Thank you for your message and the clarification.

    Regrettably, we do not have a function that extracts the $label for your use case. I recommend doing a regular expression to extract it from the tribe_get_event_website_link() function instead. The snippet below could work for you.

    $uri = tribe_get_event_website_link();
    $get_label = preg_split('/<a[^>]*">([^<]*)<\\/a>/', $uri, -1, PREG_SPLIT_DELIM_CAPTURE);
    $label = $get_label[1];
    Thread Starter viktazon

    (@viktazon)

    Thank you.
    If I try this code in /tribe/events/v2/list/event.php I see that
    tribe_get_event_website_link() outputs url instead of label… label= url, therefore, regular expression does not help… although the label exists and is displayed correctly on the event page

    Plugin Support tristan083

    (@tristan083)

    Hi @viktazon ,

    Thank you for your message.

    To help me understand the situation better, could you please provide with the code that you have for the /tribe/events/v2/list/event.php file and the direct URL of the page in question?

    Plugin Support Darian

    (@d0153)

    Hi @viktazon

    I hope you’re doing well. I just wanted to touch base and check in with you. It’s been a little while since we’ve heard from you. I was just curious if you had the chance to try out the recommendation provided above.

    Let me know if there’s anything I can assist you with.

    Thread Starter viktazon

    (@viktazon)

    Hello!
    Sorry for the delay in responding.
    File event.php – https://dropmefiles.com/LE0Iy
    Unfortunately, it is impossible to provide a direct URL, since it is a localhost. All other plugin files are unchanged.

    Plugin Support tristan083

    (@tristan083)

    Hi @viktazon ,

    Thank you for your message and the information.

    Since you are using the tribe_get_event_website_link() function in an archive page, you would want to attribute the event variable to it like so:

    <?php			
    $uri = tribe_get_event_website_link( $event );
    $get_label = preg_split('/<a[^>]*">([^<]*)<\\/a>/', $uri, -1, PREG_SPLIT_DELIM_CAPTURE);
    $label = $get_label[1];
    echo '$uri='.htmlspecialchars($uri).'<br>';
    echo '$label='.$label;
    ?>
    Thread Starter viktazon

    (@viktazon)

    I’m sorry, but the code works exactly the same. I’ve tried it this way.

    Block Event Website:
    Label-text – Google
    Link – https://google.com

    1:

    $uri=<a target="_self" rel="external">https://google.com</a>
    $label=https://google.com

    2:

    $uri=<a target="_self" rel="external">https://google.com</a>
    $label=https://google.com

    • This reply was modified 3 months, 2 weeks ago by viktazon.
    Plugin Support tristan083

    (@tristan083)

    Hi @viktazon ,

    Thank you for your message and the information.

    Are you saying you’re creating or editing events using Gutenberg block editor and have enabled Activate Block Editor for Events in Events -> Settings -> General (tab) -> Editing (section)?

    Thread Starter viktazon

    (@viktazon)

    Hello!
    Yes, that’s right.
    Everything is displayed correctly on the page of one event. I would like to display this button (link) on the event list (for each event from the list).

    Plugin Support tristan083

    (@tristan083)

    Thank you for the confirmation, @viktazon . Let me check with the team about this, as when using the block editor, it will not be using the tribe_get_event_website_link() function to retrieve the website URL in the event single view.

    Plugin Support tristan083

    (@tristan083)

    Hi @viktazon ,

    As it turns out, when using the block editor, the label becomes embedded in the post’s (or event’s) content like so:

    <!-- wp:tribe/event-website {"urlLabel":"the-website-url-label"} /-->

    This means, we’ll have to discard the previous solution that I’ve shared and instead make use of the get_the_content() function of WordPress. Essentially, you’ll want to do a regex of what’s returned by the get_the_content( $event ) function to get the label that was inputted for the website URL block.

    I hope that makes sense.

Viewing 15 replies - 1 through 15 (of 17 total)
  • You must be logged in to reply to this topic.