• Resolved jumpy2015

    (@jumpy2015)


    How am I expected to use the filter wptelegram_add_custom_fields?

    What I need is to place in the telegram message the urlencoded url of the post.
    I solved putting in my theme function.php this code:

    add_filter( 'wptelegram_add_custom_fields',  'handle_telegram_encoded_url', 10, 2);
    function handle_telegram_encoded_url(string $value, WP_Post $post){
    	return urlencode(get_permalink($post->ID));
    }

    and my Telegram template is something such
    .... something {custom_fields} something else...

    which with my code correctly results in
    .... something http%3A%2F%2FMySiteDomain%2my-post2F something else...

    so result is correct, but I feel that I’m not using your wptelegram_add_custom_fields in the way is meant to be.

    Ideally, I would put {customTag1} and {customTagWhatever} in my template and expect to handle them with a filter.

    by the way, this line in your code (class-wptelegram-post-handler.php, line 432):
    $wp_tags = array( '{ID}', '{title}', '{excerpt}', '{content}', '{author}', '{short_url}', '{full_url}', '{tags}', '{categories}', '{custom_fields}', '{custom_fields}');
    is the duplicate {custom_fields} at the end of the array a typo? (which actually seems to result in no error)

    • This topic was modified 7 years, 6 months ago by jumpy2015.
    • This topic was modified 7 years, 6 months ago by jumpy2015.
Viewing 6 replies - 1 through 6 (of 6 total)
  • How am I expected to use the filter wptelegram_add_custom_fields?

    wptelegram_add_custom_fields expects a string in return and should not be urlencoded. Since it forced the users to put all the custom fields together at one place, version 1.1 came up with the fix.

    Ideally, I would put {customTag1} and {customTagWhatever} in my template and expect to handle them with a filter.

    Since version 1.1, direct support for custom fields was added, so you can add as many custom fields as you want in the template, like this {\[\[customTag1]]} {\[\[customTagWhatever]]} (remove all \s) , but cannot filter them as yet. I will definitely provide a filter for individual fields in future releases.

    is the duplicate {custom_fields} at the end of the array a typo? (which actually seems to result in no error)

    There is no duplicate!
    https://plugins.trac.www.ads-software.com/browser/wptelegram/tags/1.3.6/includes/class-wptelegram-post-handler.php#L432

    Thread Starter jumpy2015

    (@jumpy2015)

    Thanks Manzoor,
    I realized that the wptelegram_add_custom_fields is not intended for what I need.

    I played a little with filters, ended up in something like this:
    added in class-wptelegram-post-handler.php, after line 446:

    $filterParam = array($wp_tags, $wp_subs);
    $filterOutput = apply_filters( 'wptelegram_user_defined_tags_handler', $filterParam, $post);
    $wp_tags = $filterOutput[0];
    $wp_subs = $filterOutput[1];

    sample usage (I put it in my theme functions.php):

    add_filter( 'wptelegram_user_defined_tags_handler', 'telegram_user_defined_tags_handler', 10, 2);
    
    /*
    input: array containings 2 arrays: 
    	values[0] => array of tags
    	values[1] => array of replacement for each tag found in template
    */
    function telegram_user_defined_tags_handler(array $values, WP_Post $post){
    	$values[0][] = '{url_encoded}';
    	$values[1][] =  urlencode(get_permalink($post->ID));
    	
    	$values[0][] = '{uppercase_title}';
    	$values[1][] = strtoupper($post->post_title);
    	return $values;
    }

    use it as you want if you think it can be useful for implementing the filters you were talking about.
    Maybe It would be nice to have a similar filter called in get_macros() functions (class-wptelegram-admin-settings.php)

    Thanks for your great plugin, and please keep me informed if you implement the above filters

    • This reply was modified 7 years, 6 months ago by jumpy2015. Reason: edited sample code
    • This reply was modified 7 years, 6 months ago by jumpy2015. Reason: edited sample code

    use it as you want if you think it can be useful for implementing the filters you were talking about.

    Thank you for your suggestions and the code sample. I have a different idea to implement filters for custom fields. I’ll give this a thought as well. ??

    Maybe It would be nice to have a similar filter called in get_macros() functions (class-wptelegram-admin-settings.php)

    Good suggestion, thanks again ??

    Yes, I’ll inform you once I implement it. Though I’m working on some other cool stuff that you would love ??

    Hi @jumpy2015,
    Just to inform you…
    Please update the plugin and enjoy the filters you asked for and many more ??

    • wptelegram_settings_macros in get_macros()
    • wptelegram_macro_values, wptelegram_replace_macro_taxonomy and wptelegram_replace_macro_custom_field in prepare_message()
    Thread Starter jumpy2015

    (@jumpy2015)

    Thanks a lot Manzoor, your new filters are exactly what I was looking for
    I’ve just installed in production environmnent your great plugin, thanks again

    You are welcome ??

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘wptelegram_add_custom_fields filter’ is closed to new replies.