Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Plugin Name: WP Sprzedawca
- Version: 0.3
- Description: Plugin pozwala uzytkownikowi pobierac ze strony plik lub wyswietlic zawartosc wpisu po podaniu prawidlowego kodu otrzymanego smsem premium lub po wykonaniu płatności elektronicznej. Obsluge platnosci realizuje serwis <a href="http://www.dotpay.pl">Dotpay.pl</a>
- Author: Konrad Karpieszuk
- Author URI: http://www.muzungu.pl/
- Plugin URI: http://www.muzungu.pl/moje-pluginy-do-wordpressa/
- */
- require_once('wp-sprzedawca-admin.php');
- // include_once('test.php');
- global $wpdb;
- /* KONFIGURACJA */
- /* JAK SIĘ MA NAZYWAĆ NASZ PLIK DO POBRANIA?
- * Wpisz poniżej nazwę jaka ma zostać nadana dla pliku podczas wysyłynia
- * go do użytkownika. Nie musi być to ta sama nazwa, pod jaką zapisałeś
- * plik na serwerze (i najlepiej aby była właśnie inna, co nieco utrudni
- * próby obejścia mechanizmu płatniczego
- */
- $file_send = "wp-sprzedawca.zip";
- /* JAK SIĘ NAZYWA PLIK KTÓRY CHCESZ WYSYŁAĆ?
- * Jaką nazwę ma plik, który umieściłeś w katalogu swojego pluginu (jeśli
- * jeszcze tego nie zrobiłeś, zrób to teraz) i chcesz wysyłać do użytkownika
- * pod nazwą podaną w punkcie powyżej?
- */
- $file_taken = "tajnyplik.zip";
- /* JAKI JEST TWÓJ ID W SERWISIE DOTPAY?
- * Podaj poniżej swój numer ID w serwisie dotpay.pl. Możesz go sprawdzić
- * po zalogowaniu do serwisu. Nie zmieniaj tego tutaj!
- * Jeśli chcesz zmienić ID, przejdź do panelu administracyjnego > WP Sprzedawca
- * > Ustawienia Dotpay
- */
- $dotpay_id = get_option('wp_sprz_dotpay_id');
- /* W JAKI SPOSÓB KUPUJĄCY PŁACI ZA PLIK?
- * Dotyczy ustawień płatności smsem. Raczej tego nie zmieniaj.
- * Pole te definiuje usługę jaką wykorzystaliśmy na stronie dotpay.pl
- * Wartość "sms" oznacza "Kod generowany i dopisywany do listy kodów. Sprawdzanie
- * kodów w Dotpay". Nie zmieniaj tej wartości. Wstawiam ją tutaj dlatego,
- * że w przyszłości dopiszę obsługę innych kanałów płatności ;)
- */
- $dotpay_type = "sms";
- /* JAKI JEST IDENTYFIKATOR USŁUGI?
- * Wpisz tutaj, to coś, co user wysyła po kropce w treści sms. Czyli np jeśli
- * musi wysłać sms o treści "AP.DOSTEP", wpisz tutaj "DOSTEP"
- */
- $dotpay_code = "WPSPRZED";
- /* JAKI JEST NUMER POD KTÓRY TREZBA WYSŁAĆ SMS?
- */
- $dotpay_phone = "92578";
- /* JAKI JEST KOSZT SMSA?
- * Proszę podać koszt smsa z wliczonym podatkiem
- */
- $dotpay_cost = "30.75";
- /* CZY KOD MA BYĆ OD RAZU KASOWANY Z LISTY KODÓW?
- * wartość 1 - tak, skasuj kod od razu po jego sprawdzeniu
- * wartość 0 - nie, nie kasuj
- */
- $dotpay_del = 0;
- /* JAKA JEST WYSOKOŚĆ E-PRZELEWU?
- * Określ ile klient będzie musiał zapłacić za plik, jeśli zdecyduje się
- * na formę zapłaty przelewem (karta kredytowa, mtransfer itp)
- * Kwota nie może być mniejsza niż 5 złotych.
- */
- $eprzelew_cost = "15.00";
- /* JAKI MA BYĆ OPIS EPRZELEWU?
- * Wpisz tutaj tytuł przelewu jaki użytkownikowi ma się wyświetlić na stronie
- * Dotpay nad polami wyboru formy płatności. Zamist spacji wstaw %20
- */
- $eprzelew_tytul = "Zakup%20pliku";
- /* CO MA BYĆ NA GUZIKU PO PRZELANIU KASY?
- * Na koniec zapłaty, gdy się powiedzie Dotpay wyświetla guzik
- * przekierowujący do naszego serwisu. Co powinno być na nim napisane?
- * Wskazówka: jako, że od razu po przekierowaniu zostanie rozpoczęte wysyłanie
- * pliku, warto aby treść guzika była czymś w rodzaju "Pobierz plik", "Pobierz ebook"
- * itp
- */
- $eprzelew_guzik = "Pobierz%20plik";
- /* KONFIGURACJA PŁATNEGO DOSTĘPU DO TREŚCI WPISÓW
- *
- * SMS
- *
- * JAKI JEST IDENTYFIKATOR USŁUGI?
- * Co ma się znaleźć w treści smsa po "AP."?
- */
- $platnatresc_sms_code = "MUZU";
- /* JAKI JEST NUMER TELEFONU?
- * ...pod który trzeba wysłać sms?
- */
- $platnatresc_sms_nr = "76068";
- /* JAKA JEST CENA SMSA?
- * Z wliczonym podatkiem, grosze po kropce
- */
- $platnatresc_sms_cost = "7.32";
- /* PŁATNA TREŚĆ ZA PRZELEW
- *
- * JAKA JEST WYSOKOŚĆ E-PRZELEWU?
- * Określ ile klient będzie musiał zapłacić za dostęp do treści, jeśli
- * zdecyduje się na formę zapłaty przelewem (karta kredytowa, mtransfer itp)
- * Kwota nie może być mniejsza niż 5 złotych. Grosze po kropce.
- */
- $platnatresc_eprzelew_cost = "5.00";
- /* JAKI MA BYĆ OPIS EPRZELEWU?
- * Wpisz tutaj tytuł przelewu jaki użytkownikowi ma się wyświetlić na stronie
- * Dotpay nad polami wyboru formy płatności. Zamist spacji wstaw %20
- */
- $platnatresc_eprzelew_tytul = "Dostep%20do%20tresci";
- /* CO MA BYĆ NA GUZIKU PO PRZELANIU KASY?
- * Na koniec zapłaty, gdy się powiedzie Dotpay wyświetla guzik
- * przekierowujący do naszego serwisu. Co powinno być na nim napisane?
- */
- $platnatresc_eprzelew_guzik = "Powrot%20do%20serwisu";
- /* ILE CZASU MA TRWAĆ DOSTĘP?
- * Określ w sekundach ile czasu osoba ma prawo przeglądać nasze wpisy
- * bez ponownego podania kodu. Możesz stosować operator mnożenia. Czyli
- * na przykład jeśli ktoś ma móc czytać nasze wpisy przez tydzień, możesz
- * zapisac "60*60*24*7" (sekundy*minuty*godziny*dni). Bez znaków cudzysłowia
- */
- $platnatresc_waznosc = 60*60*24*7;
- /* ILE BĘDZIE TRWAŁ DOSTĘP - SŁOWNIE
- * Wpisz słownie ile będzie trwał wykupiony dostęp. Wpis poniżej powinien
- * być dokończeniem zdania: "płatny dostęp będzie trwał..."
- */
- $platnatresc_waznosc_slownie = "7 dni";
- /* KONIEC KONFIGURACJI */
- $sprzedawca_table_name = $wpdb->prefix . "sprzedawca";
- function sprzedawca_install () {
- global $wpdb;
- $sprzedawca_table_name = $wpdb->prefix . "sprzedawca";
- $sprzedawca_db_version = "1.4";
- if ($wpdb->get_var("SHOW TABLES LIKE '".$sprzedawca_table_name."'") != $sprzedawca_table_name) {
- $zapytanko = "CREATE TABLE " . $sprzedawca_table_name . " (
- id mediumint(9) NOT NULL AUTO_INCREMENT,
- control varchar(32) NOT NULL,
- status varchar(20) DEFAULT 'nowa',
- PRIMARY KEY (id)
- );";
- require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
- dbDelta($zapytanko);
- add_option("sprzedawca_db_version", $sprzedawca_db_version);
- }
- $installed_ver = get_option( "sprzedawca_db_version" );
- if( $installed_ver != $sprzedawca_db_version ) {
- $zapytanko = "CREATE TABLE " . $sprzedawca_table_name . " (
- id mediumint(9) NOT NULL AUTO_INCREMENT,
- control varchar(32) NOT NULL,
- status varchar(20) DEFAULT 'nowa',
- PRIMARY KEY (id)
- );";
- require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
- dbDelta($zapytanko);
- update_option("sprzedawca_db_version", $sprzedawca_db_version);
- }
- }
- function pokaz_pobieranie () {
- global $dotpay_code;
- global $dotpay_phone;
- global $dotpay_cost;
- return '
- <form method="post" id="dotpay-sms-form">
- Aby pobrać plik, proszę wysłać SMS o treści <b>AP.'.$dotpay_code.'</b>
- pod numer <b>'.$dotpay_phone.'</b> (koszt jednego smsa:
- '.$dotpay_cost.' PLN z VAT), a następnie w pole poniżej
- musisz wprowadzić kod otrzymany smsem zwrotnym: <br />
- <input type="text" name="checksmscode" size=10 /><br />
- <input type="submit" value="Zatwierdź i pobierz" /><br />
- <small>Usługa płacenia SMSem dostępna jest w sieciach Era GSM, Plus GSM,
- Orange i Play i obsługiwana jest przez Dotpay. <br />
- <a href="http://www.dotpay.pl/index.php?content=113&newlang=pl">Regulamin</a> |
- <a href="http://www.dotpay.pl/reklamacje">Składanie reklamacji</a> |
- <a href="'.get_bloginfo('url').'">Kontakt z właścicielem strony</a>
- </small>
- </form>
- ';
- }
- function pokaz_eprzelew () {
- global $eprzelew_cost;
- return '
- <form method="post" id="dotpay-eprzelew-form">
- Zapłać kartą lub eprzelewem. W tej opcji zakup będzie Cię kosztował '.$eprzelew_cost.' złotych (z podatkiem VAT)<br />
- <input type="submit" name="zrobprzelew" value="Wykonaj przelew" />
- </form>
- ';
- }
- function slij_plik() {
- global $file_send;
- global $file_taken;
- header('Content-Disposition: attachment; filename='.$file_send);
- header('Content-Type: application/x-unknown');
- if ($f_handler = fopen("".bloginfo('url')."wp-content/plugins/wp-sprzedawca/".$file_taken."", "rt")) {
- flock($f_handler, 1);
- while (!feof($f_handler))
- {
- echo fread($f_handler, 512 * 1024);
- }
- flock($f_handler, 3);
- fclose($f_handler);
- }
- exit();
- }
- function udostepnij_tresc() {
- global $platnatresc_waznosc;
- setcookie('sprzedawca-platnatresc', 'wykupiony', time()+$platnatresc_waznosc, "/", str_replace('http://www','',get_bloginfo('url')));
- header( 'refresh: 0; url='.$_SERVER['REQUEST_URI'].'' );
- // print "jestem już w funkcji udostepnij plik...";
- exit;
- }
- function sprawdz_kod () {
- // setcookie('sprzedawca-platnatresc', '', -100, "/", str_replace('http://www','',get_bloginfo('url')));
- // print_r($_COOKIE);
- global $dotpay_id;
- global $dotpay_type;
- global $dotpay_code, $platnatresc_sms_code;
- global $dotpay_del;
- global $wpdb;
- global $sprzedawca_table_name;
- global $eprzelew_cost;
- global $eprzelew_tytul, $eprzelew_guzik;
- // sprawdzamy czy człowiek wpisał kod sms
- if ($_POST['checksmscode'] OR $_POST['checksmscodezatresc']) {
- if ($_POST['checksmscode']) {
- $checksmscode = $_POST['checksmscode'];
- $usluga = "plik";
- }
- else {
- $checksmscode = $_POST['checksmscodezatresc'];
- $dotpay_code = $platnatresc_sms_code;
- $usluga = "tresc";
- }
- $dotpay_handle = fopen("http://dotpay.pl/check_code.php?id=".$dotpay_id."&code=".$dotpay_code."&check=".$checksmscode."&type=".$dotpay_type."&del=".$dotpay_del, 'r');
- $dotpay_status = fgets($dotpay_handle, 8);
- $czas_zycia = fgets($dotpay_handle, 24);
- fclose($dotpay_handle);
- $czas_zycia = rtrim($czas_zycia);
- if ($dotpay_status == 0) {print "Kod niepoprawny."; exit;} # gdy kod niepoprawny
- else {
- if ($usluga == "plik") {
- slij_plik();
- }
- else {
- udostepnij_tresc();
- }
- }
- }
- // sprawdzamy czy człowiek wybrał opcję zapłacenia eprzelewem
- if ($_POST['zrobprzelew'] OR $_POST['zrobprzelewzatresc']) {
- $control_kod = md5(time());
- $urlpowrotny = get_bloginfo('url');
- if ($_POST['zrobprzelewzatresc']) {
- global $platnatresc_eprzelew_cost, $platnatresc_eprzelew_tytul, $platnatresc_eprzelew_guzik;
- $urlpowrotny .= $_SERVER['REQUEST_URI'];
- $eprzelew_cost = $platnatresc_eprzelew_cost;
- $eprzelew_tytul = $platnatresc_eprzelew_tytul;
- $eprzelew_guzik = $platnatresc_eprzelew_guzik;
- $control_kod = "tresc".substr($control_kod, 5);
- }
- setcookie('sprzedawca-control', $control_kod, time()+60*60*24*2, '/');
- $zapisz_control = "INSERT INTO ".$sprzedawca_table_name." (control)
- VALUES ('". $wpdb->escape($control_kod) ."')";
- $rezultat = $wpdb->query( $zapisz_control );
- $adres_przekierowania = "https://ssl.dotpay.pl/?id=".$dotpay_id."&kwota=".$eprzelew_cost."&waluta=PLN&opis=".$eprzelew_tytul."&lang=pl&URL=".$urlpowrotny."&URLC=".get_bloginfo('url')."&type=3&txtguzik=".$eprzelew_guzik."&control=".$control_kod."";
- header("Location: ".$adres_przekierowania."");
- exit;
- }
- // sprawdzamy czy dotpay właśnie odesłało niejawnie nam info o transkacji
- if ($_POST['t_status'] AND $_POST['control']) {
- $wpdb->show_errors();
- if (substr($_POST['control'], 0, 5) == "tresc") {
- global $platnatresc_eprzelew_cost;
- $eprzelew_cost = $platnatresc_eprzelew_cost;
- }
- if ($_POST['t_status'] == "2" AND $_POST['id'] == $dotpay_id AND $_POST['amount'] == $eprzelew_cost AND in_array($_SERVER['REMOTE_ADDR'], array("217.17.41.5", "195.150.9.37")) ) {
- $aktualizujemy = "UPDATE ".$sprzedawca_table_name." SET status = 'kupil' WHERE control = '".$_POST['control']."'";
- if ($wpdb->query($aktualizujemy)) {
- exit("OK");
- }
- else {
- exit($wpdb->print_error());
- }
- }
- }
- // sprawdzamy czy klient właśnie wrócił ze strony dotpay po dokonaniu
- // zapłaty
- if ($_GET['status'] == "OK") {
- $jakistatus = $wpdb->get_var("SELECT status FROM ".$sprzedawca_table_name." WHERE control = '".$_COOKIE['sprzedawca-control']."'");
- // print_r($_COOKIE);
- if ($jakistatus == "kupil") {
- if (substr($_COOKIE['sprzedawca-control'], 0, 5) == "tresc") {
- setcookie('sprzedawca-control', 'kasuj', 0, "/", str_replace('http://www','',get_bloginfo('url')));
- udostepnij_tresc();
- }
- else {
- slij_plik();
- }
- }
- }
- }
- function ukryj_wpis ($content) {
- global $post;
- $czyplatny = get_post_meta($post->ID, "platny", true);
- $ileparagrafow = get_post_meta($post->ID, "akapity", true);
- if ($czyplatny == "true" AND $_COOKIE['sprzedawca-platnatresc'] != "wykupiony") {
- global $platnatresc_eprzelew_cost, $platnatresc_waznosc_slownie, $platnatresc_sms_code, $platnatresc_sms_nr, $platnatresc_sms_cost;
- $content = explode("\n", $content);
- for ($i = 0; $i < $ileparagrafow; $i++) {
- $wstep .= $content[$i];
- }
- $formularze = '
- <form method="post" id="dotpay-eprzelew-form">
- Aby przeczytać ten artykuł w całości, musisz wykupić płatny dostęp. Po zapłacie będziesz miał dostęp z tego komputera do naszych wszystkich treści przez '.$platnatresc_waznosc_slownie.'. <br />
- Zapłać kartą lub eprzelewem. W tej opcji zakup będzie Cię kosztował '.$platnatresc_eprzelew_cost.' złotych (z podatkiem VAT)<br />
- <input type="submit" name="zrobprzelewzatresc" value="Wykonaj przelew" />
- </form>
- <form method="post" id="dotpay-sms-form">
- Możesz także zapłacić wysyłając SMS o treści <b>AP.'.$platnatresc_sms_code.'</b>
- pod numer <b>'.$platnatresc_sms_nr.'</b> (koszt jednego smsa:
- '.$platnatresc_sms_cost.' PLN z VAT), a następnie w pole poniżej
- musisz wprowadzić kod otrzymany smsem zwrotnym: <br />
- <input type="text" name="checksmscodezatresc" size=10 /><br />
- <input type="submit" value="Zatwierdź i czytaj treść" /><br />
- <small>Usługa płacenia SMSem dostępna jest w sieciach Era GSM, Plus GSM,
- Orange i Play i obsługiwana jest przez Dotpay. <br />
- <a href="http://www.dotpay.pl/index.php?content=113&newlang=pl">Regulamin</a> |
- <a href="http://www.dotpay.pl/reklamacje">Składanie reklamacji</a> |
- <a href="'.get_bloginfo('url').'">Kontakt z właścicielem strony</a>
- </small>
- </form>
- ';
- return $wstep.$formularze;
- // return substr(strip_tags($content), 0, 20).pokaz_pobieranie().pokaz_eprzelew();
- }
- else return $content;
- }
- register_activation_hook(__FILE__, 'sprzedawca_install');
- add_action('init', 'sprawdz_kod', 0);
- add_shortcode('autokod-sms', 'pokaz_pobieranie');
- add_shortcode('eprzelew-form', 'pokaz_eprzelew');
- add_filter('the_content', 'ukryj_wpis');
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement