Elektronisk körjournal till Skatteverket

Den 19–22 augusti hittar du oss på StjärnaFyrkant på Elmia Lastbil – en av årets stora mötesplatser för transport- och åkeribranschen!Monter B01:63Kom förbi och träffa oss, snacka lösningar och upptäck hur vi kan hjälpa dig att få en smartare, tryggare och mer uppkopplad vardag. Vi ser fram emot att träffa dig på Elmia!Hitta oss direkt i mässkartan: Monter B01:63#stärnafyrkant #elmialastbil #elmialastbil2026 #transport #åkeri #Lastbil #Uppkopplad #Digitalisering #mässa ...
VW Tayron Räddningstjänsten ...
Öppettider i sommar! Mån-Tors 07:30 - 16:00Fre 07:30 - 12:00 ...
Ledingsfordon Räddningstjänsten ...
Foton från Standby Swedens inlägg ...
option_name, [ 'sanitize_callback' => [$this, 'sanitize_settings'] ] ); } public function sanitize_settings($input) { return [ 'page_id' => sanitize_text_field($input['page_id'] ?? ''), 'access_token' => sanitize_text_field($input['access_token'] ?? ''), ]; } /** * Adminsida */ public function settings_page() { $settings = get_option($this->option_name, []); ?>

CT Facebook Feed

Ange Facebook-sidans Page ID.

Ange en giltig Meta/Facebook access token med rättigheter för att läsa sidans inlägg.


Användning

Lägg följande shortcode på valfri sida eller i ett block:

[ct_facebook_feed]
admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('ct_facebook_feed_nonce') ] ); $js = " document.addEventListener('DOMContentLoaded', function() { const button = document.querySelector('.ct-facebook-load-more'); if (!button) { return; } button.addEventListener('click', function() { const feed = document.querySelector('.ct-facebook-feed'); const postsContainer = document.querySelector('.ct-facebook-posts'); const loading = document.querySelector('.ct-facebook-loading'); const after = button.dataset.after || ''; button.style.display = 'none'; loading.style.display = 'block'; const formData = new FormData(); formData.append('action', 'ct_load_facebook_posts'); formData.append('nonce', CTFacebookFeed.nonce); formData.append('after', after); fetch(CTFacebookFeed.ajaxUrl, { method: 'POST', body: formData }) .then(response => response.json()) .then(data => { loading.style.display = 'none'; if (!data.success) { button.style.display = 'block'; alert(data.data.message || 'Kunde inte hämta fler inlägg.'); return; } postsContainer.insertAdjacentHTML( 'beforeend', data.data.html ); if (data.data.next) { button.dataset.after = data.data.next; button.style.display = 'block'; } else { button.remove(); } }) .catch(error => { loading.style.display = 'none'; button.style.display = 'block'; console.error(error); alert('Ett fel uppstod när fler inlägg skulle hämtas.'); }); }); }); "; wp_add_inline_script('ct-facebook-feed', $js); } /** * Shortcode */ public function shortcode() { $settings = get_option($this->option_name, []); if (empty($settings['page_id']) || empty($settings['access_token'])) { return '

Facebook-flödet är inte konfigurerat ännu.

'; } $result = $this->get_posts('', 10); if (is_wp_error($result)) { return '

' . esc_html($result->get_error_message()) . '

'; } ob_start(); ?>
render_posts($result['data']); ?>
Laddar fler inlägg...
get_posts($after, 10); if (is_wp_error($result)) { wp_send_json_error([ 'message' => $result->get_error_message() ]); } $next = ''; if (!empty($result['paging']['next'])) { $next = $this->get_after_cursor( $result['paging']['next'] ); } wp_send_json_success([ 'html' => $this->render_posts($result['data']), 'next' => $next ]); } /** * Hämta Facebook-inlägg */ private function get_posts($after = '', $limit = 10) { $settings = get_option($this->option_name, []); $page_id = $settings['page_id'] ?? ''; $token = $settings['access_token'] ?? ''; if (!$page_id || !$token) { return new WP_Error( 'missing_config', 'Facebook-flödet är inte konfigurerat.' ); } $api_version = 'v24.0'; $url = 'https://graph.facebook.com/' . $api_version . '/' . rawurlencode($page_id) . '/posts'; $params = [ 'fields' => 'id,message,created_time,full_picture,permalink_url', 'limit' => $limit, 'access_token' => $token, ]; if (!empty($after)) { $params['after'] = $after; } $url = add_query_arg($params, $url); $response = wp_remote_get( $url, [ 'timeout' => 20 ] ); if (is_wp_error($response)) { return $response; } $status = wp_remote_retrieve_response_code($response); $body = json_decode( wp_remote_retrieve_body($response), true ); if ($status < 200 || $status >= 300) { $message = $body['error']['message'] ?? 'Facebook API returnerade ett fel.'; return new WP_Error( 'facebook_api_error', $message ); } return $body; } /** * Rendera inlägg */ private function render_posts($posts) { if (empty($posts)) { return '

Inga inlägg hittades.

'; } ob_start(); foreach ($posts as $post) : $message = $post['message'] ?? ''; $date = $post['created_time'] ?? ''; $image = $post['full_picture'] ?? ''; $link = $post['permalink_url'] ?? ''; ?>

© 2022 Disigned by Lizard AB

G-5T0TN4B69Q