#wordpress #facebook #plugins
Вопрос:
Мой клиент установил плагин Facebook для WooCommerce, чтобы иметь доступ только к сервису живого чата messenger, доступному этому плагину. Что я хочу сделать, так это отобразить значок чата мессенджера только на конкретных страницах (например: страница содержимого и часто задаваемые вопросы), а не на всех страницах.
Внутри основных файлов плагина есть следующие строки кода:
public __construct($settings) {
...
...
add_action( 'wp_footer', array( $this, 'inject_messenger_chat_plugin' ) );
}
public function inject_messenger_chat_plugin() {
if ( facebook_for_woocommerce()->get_integration()->is_messenger_enabled() ) :
printf(
"
<div
attribution="fbe_woocommerce"
class="fb-customerchat"
page_id="%s"
></div>
<!-- Facebook JSSDK -->
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '',
autoLogAppEvents : true,
xfbml : true,
version : '%s'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = 'https://connect.facebook.net/%s/sdk/xfbml.customerchat.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div></div>
",
esc_attr( $this->page_id ),
esc_js( $this->jssdk_version ?: 'v5.0' ),
esc_js( facebook_for_woocommerce()->get_integration()->get_messenger_locale() ?: 'en_US' )
);
endif;
}
Как я мог добавить что-то вроде:
global $post;
//echo $post->ID;
if($post->ID == 1) {...}
и обернуть скрипт, который есть у плагина?
Или есть способ перезаписать функцию inject_messenger_chat_plugin внутри моей дочерней темы?
Комментарии:
1. Нет, вы не можете просто перезаписать метод класса, не изменяя исходный файл напрямую. Возможно, вы могли бы расширить класс и создать свой собственный, а затем вы можете перезаписать определенные методы своими собственными. Но тогда вам все равно нужно будет заменить имя класса везде, где создается экземпляр оригинала … Возможно, было бы разумнее не использовать этот плагин, а поместить созданный им HTML/JS-код в свой шаблон самостоятельно.