WooCommerce & Fastbill API

Für alle die FastBill und WooCommerce mit WordPress nutzen wollen, hier ein Plugin welchen den Export nach FastBill übernimmt (auch mit einem Cronjob möglich).

Viel Spaß mit dem Plugin und ich freue mich auf eure Kommentare!

Download:

“WooCommerce & Fastbill API” weiterlesen

Facebook “Add Page Tag Dialog ” Workaround

Hallo zusammen,
für alle die aktuell den Bug haben: FB-Bug “Add Page Tag Dialog “
Hier mein kleiner Workaround um die App auf die Seite zu bringen.

Voraussetzung:
+ Rechte auf der Seite
+ App-Admin
+ Facebook-SDK (Javascript) geladen

Hello everybody,
at the moment i can’t add an app to a page with the “add page tag dialog” on facebook. FB-Bug “Add Page Tag Dialog “.
This is my workaround:

Prerequisite:
+ Right on the site
+ App Admin
+ Loading Facebook SDK (Javascript)

    function addAppToPage(name,appID){
        FB.login(function(response){
                FB.api('/me/accounts', function(response){
                    if (response && !response.error) {
                        $.each(response.data,function(k,v){
                            if(name.toLowerCase() == v.name.toLowerCase()){
                                FB.api(
                                    "/"+v.id+"/tabs",
                                    "POST",
                                    {
                                        "app_id": appID,
                                        "access_token": v.access_token
                                    },
                                    function (response) {
                                        if (response && !response.error) {
                                            console.log(response);
                                        }
                                    }
                                );
                            }
                        })
                    }
                })
            }
            ,{scope:"manage_pages"});
    }

    // Load the SDK asynchronously
    (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 = "//connect.facebook.net/de_DE/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

    // Die Funktion startet nach 2000ms
    setTimeout(function(){
        addAppToPage("YOURPAGE","APPID")
    },2000);

TwitterAPI mit PHP abrufen

Hallo zusammen,
wer braucht es nicht… ein Tweet auf seiner eigen Seite oder etwas individueller… aber ohne ein Plugin aus WordPress sondern auf seinem eigenen System.
Mit diesem kleinen Beispiel kann man sich schnell und einfach die Tweets auf seine Webseite holen. Das einzige was gebraucht wird, ist PHP 😉 Ach so noch ein kleiner Hinweis… der Cache wurde eingebaut, weil Twitter bei 1000 aufrufen an die API zu einer TwitterPerson dicht macht und man dann ein Tag keine weiteren Daten bekommen kann. Mit der Datei wird es aktuell nur 1x Stunde angefragt 😉

<?php
/**
 * Created by JetBrains PhpStorm.
 * User: marcfinnern
 * Date: 24.08.12
 * Time: 10:47
 */
class twitter {

    function twitter_api($screenname, $maxItems="3", $cacheTime="60"){
        $url = "https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=$screenname&count=$maxItems";

        // Caching
        $cachedatei = "cache/twitter_".$screenname.".txt";
        $cacheTime = time()-($cacheTime*60);

        if (file_exists($cachedatei)){
            if (filemtime($cachedatei)<$cacheTime){
                $daten = file_get_contents($url);
                file_put_contents($cachedatei, $daten);
            }
            else {
                $daten = file_get_contents($cachedatei);
            }
        }
        else {
            $daten = file_get_contents($url);
            file_put_contents($cachedatei, $daten);
        }
        // Caching - End


        $result = json_decode($daten);
        $count = 0;
        echo '<ul id="twitter_api">'."\n";
        foreach($result as $tweet) {
            if($count < $maxItems){

                if($count == 0){
                    $class = "first";
                } else if ($count == ($maxItems-1)) {
                    $class = "last";
                } else {
                    $class = "middle";
                }

                $date = date("d M",strtotime($tweet->created_at));
                $search = array(
                    $tweet->entities->urls[0]->url,
                    "@".$tweet->entities->user_mentions[0]->screen_name,
                    "#".$tweet->entities->hashtags[0]->text

                );
                $replace = array(
                    '<a href="'.$tweet->entities->urls[0]->url.'" target="_blank">'.$tweet->entities->urls[0]->expanded_url.'</a>',
                    '<a href="https://twitter.com/'.$tweet->entities->user_mentions[0]->screen_name.'" target="_blank">@'.$tweet->entities->user_mentions[0]->screen_name.'</a>',
                    '<a href="https://twitter.com/search/'.$tweet->entities->hashtags[0]->text.'" target="_blank">#'.$tweet->entities->hashtags[0]->text.'</a>'
                );


                echo '  <li class="'.$class.'">'."\n";
                echo '      <span class="title"><strong>'.$date." | ".$tweet->user->name.'</strong> <a href="https://twitter.com/'.$tweet->user->screen_name.'" target="_blank">@'.$tweet->user->screen_name.'</a></span>'."\n";
                echo '      <span class="desc">'.str_replace($search,$replace,$tweet->text).'</span>'."\n";
                echo '  </li>'."\n";
            }
            $count++;
        }
        echo "</ul>"."\n";
    }
}

Im weiteren sind dann die Sachen für den Quellcode so zu schreiben.
Hinweiß: Man muss dem Cache-Ordner die Rechte 777 oder 0777 geben, damit die Daten abgelegt werden können.

<?php
/*
* Einladen der Twitter-Class
* Und verfügbar machen in einer Variable
* Defaults: $screenname, $maxItems="3", $cacheTime="60"
*/

require("class/twitter.php");
$tw = new twitter();

# Wiedergabe des tweets (3x + 1 Stunde Cachezeit):
$tw->twitter_api("klickfabrik");

# Wiedergabe von 10 Tweets, 30 Minuten Cachezeit
$tw->twitter_api("klickfabrik","10","30");
?>

Wenn man das ganze auch in WordPress nutzen will, muss man zusätzlich noch folgendes machen, damit es auch in einem z.B. PHP-Widget verfügbar ist:

<?php
/*
* Daten werden unter der function.php im WordPresstheme abgelegt und wie folgt aktiviert
*/
#Zeile 11-70 einfügen (also nur die function)
function twitter_api($screenname, $maxItems="3", $cacheTime="60"){
..
.
}

#diese Zeile unter der function anhängen, damit WordPress damit arbeiten kann.
add_action('twitter_api', 'twitter_api');


/* 
* Caching anpassung für WordPress
* Wird dann im Theme-Ordner abgelegt und gespeichert
* Bitte das alte Caching ersetzen 😉
*/
$wordpressDir = explode("/themes/",get_bloginfo('template_url'));
$wordpressDir = "wp-content/themes/".$wordpressDir&#91;1&#93;."/";
$cachedatei = $wordpressDir."cache/twitter_".$screenname.".txt";
?>

Viel Spaß damit,
euer Marc