. */ # Known/outstanding issues: # [COSMETIC] If the ping services list is empty, the log file will report "not pinging services - disabled by administrator" even if pinging is enabled. # adds an options page to the options menu function SUP_add_options_page() { if(function_exists("add_options_page")) add_options_page("UP Smart Update Pinger", "UP Smart Update Pinger", 5, basename(__FILE__), "SUP_show_options_page"); } # shows the options page function SUP_show_options_page() { global $logfile; $ping = get_option("SUP_ping"); $pinglog = get_option("SUP_pinglog"); $uris = get_option("ping_sites"); $forcedpings = false; $SUP_output_log=''; $pingservicesnow = "Ping Services Now!"; $deletelogfile = "Delete Log File"; if(isset($_POST["ping"]) && $_POST["ping"] == $pingservicesnow){ $forcedpings = true; SUP_log(SUP_ping_services($forcedpings).strftime("%D %T")."\tForced pinging services (Homepage)\n\t─────\n"); }elseif(isset($_POST["submit"])){ $uris = $_POST["uris"]; $ping = 0; if($_POST["ping"] == 1) $ping = 1; $pinglog = 0; if($_POST["pinglog"] == 1) $pinglog = 1; update_option("SUP_ping", $ping); update_option("SUP_pinglog", $pinglog); update_option("ping_sites", $uris); echo '

Options saved.

'; }elseif(isset($_POST["delete"]) && $_POST["delete"] == $deletelogfile){ $fh = @fopen($logfile, "w"); if(false === @fwrite($fh, strftime("%D %T")."\tLog file deleted\n\t─────\n")){ update_option("SUP_error", 1); }else{ update_option("SUP_error", 0); } @fclose($fh); } $checked1 = ''; if($ping == 1) $checked1 = 'checked="checked"'; $checked2 = ''; if($pinglog == 1) $checked2 = 'checked="checked"'; echo '

Ultimate Plugins Smart Update Pinger

Click here for installation instructions

Click here for usage instructions

Click here for updated versions

Click here for comments and suggestions

URIs to Ping

The following services will automatically be pinged/notified when you publish normal or future timestamped posts. Not when you edit previously published posts, as WordPress does by default.

This plugin also fixes an issue with the default extended ping programming in Wordpress and pre-2.1 versions of Smart Update Pinger (it now includes the url of the new post).

NB: this list is synchronized with the original update services list.

Separate multiple service URIs with line breaks:

Ping log

These are the last 100 actions performed by the plugin. In reverse chronological order for easier reading (latest ping first).

'; SUP_get_last_log_entries(500); echo '

'; } # telling WordPress to ping if the post is new, but not if it's just been edited function SUP_ping_if_new($id){ global $wpdb, $post_title; $SUP_output_log="\t─────\n"; $SUP_ping_result=''; $forcedpings = false; if(get_option('SUP_ping') == 1 and get_option('ping_sites') != ""){ # fetches data directly from database; the function "get_post" is cached, # and using it here will get the post as is was before the last save $row = mysql_fetch_array(mysql_query( "SELECT post_date,post_modified,post_title,guid FROM $wpdb->posts WHERE id=$id")); # if time when created equals time when modified it is a new post, # otherwise the author has edited/modified it if(!$row["post_title"]){ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (ERROR: YOU HAVE FORGOTTEN TO ENTER A POST TITLE) ...\n".$SUP_output_log; }else{ if($row["post_date"] == $row["post_modified"]){ $SUP_output_log=strftime("%D %T")."\tPinging services (New normal post: “".$row["post_title"]."”) ...\n".$SUP_output_log; $SUP_output_log=SUP_ping_services($forcedpings,$row["guid"]).$SUP_output_log; # Try commenting the line above, and uncommenting this line below if pinging seems to be out of order. Please notify the author if it helps! # generic_ping(); }else{ // Post has been edited or it's a future post // If we have a post title it means that we are in the normal WP loop and therefore it was an edit (not a future post) if($post_title){ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (Existing post was edited: “".$row["post_title"]."”) ...\n".$SUP_output_log; }else{ $SUP_output_log=strftime("%D %T")."\tPinging services (New timestamped post: “".$row["post_title"]."”) ...\n".$SUP_output_log; $SUP_output_log=SUP_ping_services($forcedpings,$row["guid"]).$SUP_output_log; # Try commenting the line above, and uncommenting this line below if pinging seems to be out of order. Please notify the author if it helps! # generic_ping(); } } } }else{ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (WARNING: DISABLED BY ADMINISTRATOR)\n".$SUP_output_log; } SUP_log($SUP_output_log); } # More or less a copy of WP's "generic_ping" from functions.php, # but uses another function to send the actual XML-RPC messages. function SUP_ping_services($forcedpings,$SUP_guid = '') { $SUP_output_log=''; #$services = get_settings('ping_sites'); #UP - 17.07.07 - get_option is newer/better then get_settings $services = get_option('ping_sites'); $services = preg_replace("|(\s)+|", '$1', $services); // Kill dupe lines $services = trim($services); if ( '' != $services ) { $services = explode("\n", $services); foreach ($services as $service) $SUP_output_log=SUP_send_xmlrpc($forcedpings,$SUP_guid,$service).$SUP_output_log; } return $SUP_output_log; } # A slightly modified version of the WordPress built-in ping functionality ("weblog_ping" in functions.php). # Original version: #function weblog_ping($server = '', $path = '') { #global $wp_version; #include_once(ABSPATH . WPINC . '/class-IXR.php'); #// using a timeout of 3 seconds should be enough to cover slow servers #$client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); #$client->timeout = 3; #$client->useragent .= ' -- WordPress/'.$wp_version; #// when set to true, this outputs debug messages by itself #$client->debug = false; #$home = trailingslashit( get_option('home') ); #if ( !$client->query('weblogUpdates.extendedPing', get_option('blogname'), $home, get_bloginfo('rss2_url') ) ) // then try a normal ping #$client->query('weblogUpdates.ping', get_option('blogname'), $home); #} # This one uses correct extendedPing format (WP does not), and logs response from service. function SUP_send_xmlrpc($forcedpings,$SUP_guid = '',$server = '', $path = '') { global $wp_version; $SUP_output_log=''; include_once (ABSPATH . WPINC . '/class-IXR.php'); // using a timeout of 5 seconds should be enough to cover slow servers (changed from 3 to 5) $client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); $client->timeout = 5; $client->useragent .= ' -- WordPress/'.$wp_version; // when set to true, this outputs debug messages by itself $client->debug = false; $home = trailingslashit( get_option('home') ); # The extendedPing format should be "blog name", "blog url", "check url" (the new URL), and "feed url". # Related Website(s) # http://www.weblogs.com/api.html # An example: # Someblog - Title # http://spaces.msn.com/someblog - Home URL # http://spaces.msn.com/someblog/PersonalSpace.aspx?something - Check/New URL # http://spaces.msn.com/someblog/feed.rss - Feed # Changed the following line therefore: # if($client->query('weblogUpdates.extendedPing', get_settings('blogname'), $home, get_bloginfo('rss2_url'), get_bloginfo('rss2_url'))) if ($forcedpings){ # If this is a forced ping it's better to use a regular ping for the homepage without an update URL (safer) if($client->query('weblogUpdates.ping', get_option('blogname'), $home)){ $SUP_output_log=strftime("%D %T")."\t► [Regular Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; } }else{ $SUP_output_log=strftime("%D %T")."\t► ".$server." could not be pinged. Error message: “".$client->error->message."”\n".$SUP_output_log; } }else{ if($client->query('weblogUpdates.extendedPing', get_option('blogname'), $home, $SUP_guid, get_bloginfo('rss2_url'))){ $SUP_output_log=strftime("%D %T")."\t► [Extended Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Updated : '".$SUP_guid."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► RSS URL : '".get_bloginfo('rss2_url')."'\n".$SUP_output_log; } }else{ # pinging was unsuccessful, trying regular ping format if($client->query('weblogUpdates.ping', get_option('blogname'), $home)){ $SUP_output_log=strftime("%D %T")."\t► [Regular Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; } }else{ $SUP_output_log=strftime("%D %T")."\t► ".$server." could not be pinged. Error message: “".$client->error->message."”\n".$SUP_output_log; } } } return $SUP_output_log; } $post_title = ""; # Receives the title of the post from a filter below function SUP_post_title($title){ global $post_title; $post_title = $title; return $title; } # Log $logfile = ABSPATH . 'wp-content/plugins/ultimate-plugins-smart-update-pinger/ultimate-plugins-smart-update-pinger.log'; function SUP_log($SUP_log_output) { global $logfile; $logerror = 0; $fh = @fopen($logfile, "a"); if(false === @fwrite($fh, $SUP_log_output)){ update_option("SUP_error", 1); }else{ update_option("SUP_error", 0); } @fclose($fh); } function SUP_get_last_log_entries($num) { global $logfile; $lines = @file($logfile); if(get_option("SUP_error") == 1){ $fh = @fopen($logfile, "a"); if(false === @fwrite($fh, "")){ echo "Error writing log file (".$logfile."). Most likely your logfile (".$logfile.") is write-protected and no log data can be saved (change the rights of this file to 777), or alternatively this could mean that you have manually removed the log file, or that you have changed the directory or file name of the plugin (they both should be 'ultimate-plugins-smart-update-pinger')"; }else{ // Original: $lines = array_slice($lines, count($lines) - $num); // Modified to show in reverse order (easier for reading) $lines = array_reverse(array_slice($lines, count($lines) - $num)); $msg = ""; foreach($lines as $line){ $msg.=trim($line)."
"; } echo $msg; } @fclose($fh); }else{ if($lines === false){ echo "Error reading log file (".$logfile."). Most likely you have manually removed the log file, or alternatively this could mean that the logfile (".$logfile.") is read-protected (change the rights of this file to 777), or that you have changed the directory or file name of the plugin (they both should be 'ultimate-plugins-smart-update-pinger')"; }else{ // Original: $lines = array_slice($lines, count($lines) - $num); // Modified to show in reverse order (easier for reading) $lines = array_reverse(array_slice($lines, count($lines) - $num)); $msg = ""; foreach($lines as $line){ $msg.=trim($line)."
"; } echo $msg; } } } # ----- # adds a filter to receive the title of the post before publishing add_filter("title_save_pre", "SUP_post_title"); # adds some hooks # shows the options in the administration panel add_action("admin_menu", "SUP_add_options_page"); # calls SUP_ping whenever a post is published add_action("publish_post", "SUP_ping_if_new"); # calls SUP_ping_draft when changing the status from private/draft to published # add_action("private_to_published', 'SUP_ping_draft'); # removes the "WordPress official" pinging hook remove_action("publish_post", "generic_ping"); # activates pinging if setting doesn't exist in database yet # (before the user has changed the settings the first time) if(get_option("SUP_ping") === false) { update_option("SUP_ping", 1); } if(get_option("SUP_pinglog") === false) { update_option("SUP_pinglog", 1); } if(get_option("SUP_error") === false) { update_option("SUP_error", 0); } ?> Sistem Bisnis | Bisnis Online | Internet Marketing

Email Marketing: (Masih) Sebuah Gerakan Gerilya Marketing yang Benar-Benar Mematikan !

Banyak jalan menuju Roma. Nampaknya ungkapan pepatah ini terus memberikan inspirasi dan merupakan semboyan bagi banyak orang untuk menggapai tujuan yang akan dicapainya agar mudah terealisasi, tak terkecuali dalam bidang internet marketing tepatnya dalam hal ini adalah email marketing.

Memang ada begitu banyak jalur yang bisa kita lakukan untuk mengoptimalkan kegiatan internet marketing kita. Setelah dipostingan-postingan sebelumnya banyak mengulas social media marketing yang memang eranya lagi ngetrend, maka selain mengoptimalkan jalur seperti Facebook marketing, kita juga perlu mengkombinasikannya dengan email marketing optimization.

Mengapa demikian ?

Read the rest of this entry »

Jenis Penghasilan dari Bisnis Internet yang Bersifat Awet dengan Sedikit Kerja

Jenis penghasilan dari bisnis internet itu ada berbagai macam ragamnya. Dan yang perlu Anda pertimbangkan dalam memilih model bisnis internet itu adalah potensi penghasilan yang akan Anda dapat disertai dengan bagaimana cara kerja bisnis itu sendiri, apakah menguras banyak tenaga atau sebaliknya.

Karena jika tidak demikian, maka bisnis internet yang Anda bangun seperti tidak memiliki ruh dan visi bisnis yang  jelas yang mengakibatkan cepat robohnya pondasi bisnis Anda. Tapi yang jelas semua orang menginginkan penghasilan dari internet yang bersifat langgeng (awet) tapi dengan sedikit kerja.

Ada berbagai macam bisnis di internet yang memberikan komisi (penghasilan), tapi tidak semuanya mampu memberikan penghasilan yang bersifat jangka panjang dan terus menerus.

Read the rest of this entry »

5 Tips Aman Bertransaksi Online

Transaksi online memang mudah dan menyenangkan. Apalagi sekarang ini banyak merchant yang memberikan berbagai opsi macam dan metode pembayaran kepada para konsumennya. Hal ini tentu saja semakin memanjakan  mereka untuk bisa bertransaksi dengan mudah dan nyaman tanpa kerumitan yang berarti.

Walaupun begitu, Anda tetap dituntut waspada dan hati-hati dalam melakukan setiap transaksi, karena bagaimanapun juga Anda berada di dunia maya, dunia yang tidak mengenal tatap muka dan batasan wilayah. Di sinilah asas kejujuran sangat dibutuhkan.

Read the rest of this entry »

Cara Membuat Halaman Statis WordPress untuk Ditampilkan di Menu Utama

Bukan WordPress namanya kalau tidak bisa memenuhi kebutuhan para penggunanya. Ya, engine blog yang satu ini begitu friendly untuk dibentuk menjadi apapun, termasuk dalam hal ini membuat halaman statis untuk ditampilkan di page utama (index).

Selain bisa dibuat menjadi web pasang iklan gratis, WordPress juga bisa dibuat untuk menjadi web affiliate. Dengan membuat halaman statis itulah nantinya WordPress dibuat menjadi web penjualan Anda.

Dengan cara itu pula Anda bisa meletakkan produk dan barang dagangan Anda yang memungkinkan apabila pengunjung langsung mengakses ke halaman utama (index), berarti mereka bisa terfokus untuk bisa melihat presentasi produk yang Anda jual. Contohnya bisa Anda lihat di web bisnis pulsa elektrik Pulsaelektrikmu.com.

Read the rest of this entry »

Program Reseller Indonesia dan Keuntungannya

Bila Anda sampai detik ini belum menemukan ide yang pas untuk Anda jadikan sebagai lahan bisnis, maka program reseller Indonesia patut Anda kedepankan untuk Anda jadikan lahan mencari penghasilan di internet.

Sebelum melangkah lebih jauh alangkah baiknya jika kita mencari tahu tentang apa sebenarnya program reseller itu ? bagaimana cara kerjanya ? menguntungkankah ?

Itulah sekelumit pertanyaan yang mungkin mengganjal di benak sebagian dari Anda.

Program reseller adalah program yang menawarkan penghasilan dengan cara bagi hasil antara dua belah pihak yakni pemilik produk (owner) dan pemasar produk itu sendiri (reseller).

Read the rest of this entry »

Membuat Bisnis Internet Berjalan Lebih Otomatis, Hemat Jam Kerja Dibantu Manusia dan Mesin Pencari

Kalau Anda sebelumnya pernah mendengar bahwa bisnis internet itu mudah dan cuma butuh 1 jam perhari dalam menjalankannya, memang itu benar adanya.

Tapi wacana tetaplah wacana, wacana berbeda dengan fakta. Fakta menunjukkan bahwa lebih dari waktu itu (1 jam) orang menghabiskan waktunya di depan komputer untuk menjalankan bisnis ini.

Bahkan jika Anda berkaca pada cerita Welly Mulia seorang internet marketer Indonesia yang kini telah malang melintang di bisnis seperti ini, maka Anda akan mendapatkan bahwa ia menghabiskan waktunya berjam-jam terkadang hingga larut pagi (subuh) baru selesai.

Read the rest of this entry »

Sistem Bisnis: 4 Pondasi Dasar Utama Membangun Bisnis di Internet

Semua bisnis internet yang bagus dan berhasil selalu ditunjang dengan infrastruktur dan sistem bisnis yang kokoh. Meskipun ada berbagai sistem dan cara bisnis di internet, setidaknya ada 4 komponen dasar yang selalu menjadi pondasinya.

Mungkin sebelumnya Anda sudah tidak asing lagi dengan sistem bisnis milik bapak Joko Susilo formula bisnis dengan konsep SMUO-Nya yang berarti sistem mesin uang otomatis.

Konsep itulah yang sampai saat ini membuat produk Formulabisnis.com berdiri kokoh disaat bisnis-bisnis lainnya pada bertumbangan. Perlu diketahui bahwa Formula Bisnis telah berdiri sejak 2001 atau kurang lebih telah berusia 9 tahunan.

Read the rest of this entry »

Cara Membuat Website/Blog Mudah Cepat dengan WordPress (2)

Ini adalah kelanjutan artikel sebelumnya (cara  membuat Website/Blog mudah cepat dengan WordPress (1), di mana pada bagian ini kita akan langsung belajar langsung sisi teknisnya.

Keberadaan website sangatlah penting dalam menjalankan bisnis internet baik kita sebagai pemilik produk (owner) maupun hanya sebagai pemasar (affiliate marketer).

Ibarat kita mau dagangan kita harus mempunyai toko ataupun showroom sebagai tempat menaruh dagangan kita, begitu pula dalam internet marketing kita membutuhkan wadah atau tempat yang bisa memajang produk yang kita pasarkan dalam hal ini adalah website atau blog.

Pada era yang serba modern dan instant ini, membuat website atau blog bukanlah suatu perkara yang rumit sebagaimana seperti dahulu.

Read the rest of this entry »

Komisi Berulang-ulang Salah Satu Kunci Sukses Internet Marketing

Salah satu kunci sukses bisnis internet marketing adalah menggunakan faktor kali dalam mendapatkan penghasilan. Percuma saja kita mendapatkan hasil yang besar namun hanya terjadi pada waktu itu saja, lebih baik jika komisi kecil tapi bisa terjadi berulang-ulang.

Bukannya percuma mempromosikan produk yang hanya bisa memberikan profit jika terjadi pada sekali penjualan, tapi saya yakin jika Anda menggunakan cara seperti ini untuk bisnis… lama kelamaan Anda akan cepat capek dan akhirnya gulung tikar dini.

Ada banyak cara untuk melipatgandakan penghasilan bisnis kita, salah satunya adalah membangun sistem bisnis yang bisa memberikan profit berulang-ulang.

Bisa dengan membuat website mlm, meskipun sistem ini banyak menuai kontroversi dan anggapan yang buruk, tetapi tidak semuanya demikian, adakalanya baik dan ada pula yang sebaliknya, yang baik adalah mereka yang mempunyai produk berkualitas dan menggunakan mlm sebagai sistem marketingnya, sedang yang buruk adalah mereka yang menggunakan sistem ini tetapi tidak ada barang yang di perjualbelikan.

Praktik ini selanjutnya dalam dunia internet marketing biasa di sebut MONEY GAME atau jikapun ada produknya… namun produk tersebut tidak berkualitas dan hanya dijadikan sebagai kedok dalam permainan money gamenya, terkadang ada pula yang menyebutnya sebagai arisan berantai, investasi online, dana hibah dan sebagainya.

Apapun itu bentuknya…Anda harus berhati-hati dengan sistem mlm yang kedua ini, namun di luar itu semua sistem ini terbukti ampuh untuk menghasilkan passive income yang berlipat-lipat di kemudian hari.

Selain cara di atas, ada lagi sistem yang sangat populer dan banyak di gunakan oleh para marketer, sistem tersebut adalah sistem affiliate.

Khusus bagi para owner (pemilik produk)… lipatgandakan penghasilan Anda dengan sistem ini, meskipun diawal-awal anda akan bekerja keras, namun kelak di kemudian hari setelah yang memasarkan produk Anda berkembang…penghasilan Anda akan berlipat-lipat meskipuan Anda sedang tidur sekalipun, orang tetap akan memasarkan produk Anda dengan senang hati dan peluang terjadi penjualan jadi sangat besar.

Ada dua model sistem affiliate yang biasa di gunakan :

1. Sistem affiliate yang memperbolehkan kita menjual meskipun kita tidak membeli produk.
2. Sistem affiliate yang memperbolehkan kita menjual suatu produk setelah kita membeli produk yang kemudian disebut sistem reseller.

Dari kedua sistem affiliate tersebut, sebaiknya Anda menggunakan sistem yang pertama, karena sistem tersebut akan memudahkan produk Anda cepat menyebar karena banyaknya affiliate yang turut andil disebabkan gratis, biasanya pengaturan komisi untuk yang premium member sebesar 50% sedang yang free member hanya 25% dari harga produk.

Untuk mendapatkan web sistem affiliate seperti ini Anda bisa membeli pluginnya di panduan WordPress, selain harganya murah Anda juga bisa mendapatkan plugin iklan baris dan toko online dan tools-tools yang sangat membantu untuk membantu bisnis anda.

Bagaimana jika kita tidak mempunyai produk alias hanya sebagai affiliate tetapi menginginkan komisi yang berulang-ulang ?


Masih banyak kok cara untuk mendapatkan komisi yang berulang-ulang, tidak sedikit penyedia layanan yang bisa memberikan kita komisi dengan sistem tersebut.

Salah satunya adalah Asian Brain milik Anne Ahira, (salah satu pusat terbaik belajar internet marketing indonesia). Sistem pembelajarannya menggunakan membership dimana kita akan mendapat komisi berulang-ulang setiap bulan jika member yang bergabung via web afiliasi kita melakukan perpanjangan kontrak, namun sebelum kita memasarkan produknya…kita harus bergabung terlebih dahulu dan membayar biaya bulanan sebesar 199.000 anggap saja 200.000 dan anda akan mendapatkan materi-materi seputar internet marketing setiap bulannya.

Adakah sistem selain diatas yang bisa memberikan komisi berulang-ulang namun dengan modal gratis ?

Ada kok…

Salah satunya adalah ikutan bisnis gratis PPC (Pay Per Click), minimal Anda harus mempunyai blog untuk memasang script yang diberikan, Anda dibayar setiap iklan yang diberikan di klik oleh pengunjung. Program PPC yang populer dan telah banyak menghasilkan uang bagi marketer adalah Google Adsense, program ini terbukti ampuh untuk menghasilkan uang di internet.

Namun jika Anda menginginkan pasar lokal ada baiknya Anda mencoba PPC dalam negeri sendiri, meskipun komisi perkliknya nggak terlalu besar di banding adsense…yakni antar 200-500 rupiah, jika blog Anda ramai saya yakin penghasilan Anda akan berlipat-lipat.

Silahkan kunjungi Adesense Camp jika mau mencoba mecoba PPC lokal.

Jadi meskipun Anda hanya seorang affiliate (bukan owner), bukan berarti Anda tidak bisa mendapatkan penghasilan besar, Anda tetap bisa mendapatkan komisi lebih besar dari seorang owner dengan syarat harus menggunakan faktor kali (berulang-ulang) sebagaimana penjelasan di atas.

Sudah banyak lhoo…yang membuktikan bahwa seorang affiliate lebih sukses dibanding seorang owner

Mau mencoba ?

Silahkan langsung praktekkan strategi marketing diatas