私は現在、私はビットコインを交換することができますWordpressのプラグインを作成しようとしています。いくつかのAPI呼び出しから取得した値を確認する必要がある場合は、cronジョブを作成する必要がありますが、cronジョブが正しくアクティブ化されません。
私はまた、問題が私のAPIコードであるかどうかを確かめるためにランダムな「エコー」を試みましたが、問題はワードプレスが私のcronジョブを起動していないことだと思います。
これは私のコードです:
function my_activation() {
if (!wp_next_scheduled ( 'my_periodic_event' )) {
wp_schedule_event(time(), 'thirtysec', 'my_periodic_event');
}
add_action('my_periodic_event', 'checkCurrencyValue');
}
function checkCurrencyValue() {
global $market, $quantita, $durata, $wpdb, $table_name;
$table_name = $wpdb->prefix."bittrex_account_info";
$users = $wpdb->get_results( "SELECT chiave FROM $table_name");
// The query will get the complete users login id/login name
foreach ( $users as $user ) {
echo $user->chiave;
}
$users = $wpdb->get_results( "SELECT chiave FROM $table_name WHERE email = '[email protected]'");
$wpdb->update( $table_name, array( 'chiave' => $key, 'secret' => $users),array('email'=>'[email protected]'));
$d = new BittrexxApi ($key, $secret);
$quantita = $wpdb->get_var("SELECT quantita FROM wp_bittrex_account_info WHERE email = '$mail'");
$discesaMax = $wpdb->get_var("SELECT discesaMax FROM wp_bittrex_account_info WHERE email = '$mail'");
$maxValDol = $wpdb->get_var("SELECT maxvaldol FROM wp_bittrex_account_info WHERE email = '$mail'");
$summ = $d->getMarketSummary("USDT-BTC");
if($summ<discesaMax){
//$balance = $d->buyLimit($market, $quantita, $durata);
}
else if($summ>maxValDol){
//$balance = $d->sellLimit($market, $quantita, $durata);
}
}
私のレジスタフックは働いています:my_activation()関数は実行されますがcheckCurrencyValue()関数は実行されません。いくつか問題はありますか?
事前にありがとう、フィリッポ
これはWordpressのcronを設定するために使用した簡略参照です。これはすべて wp_schedule_event()
と cron_schedules
からのものです。
// SETUP CRON
add_action('wp', 'myplugin_schedule_cron');
function myplugin_schedule_cron() {
if ( !wp_next_scheduled( 'myplugin_cron' ) )
wp_schedule_event(time(), 'daily', 'myplugin_cron');
}
// the CRON hook for firing function
add_action('myplugin_cron', 'myplugin_cron_function');
#add_action('wp_head', 'myplugin_cron_function'); //test on page load
// the actual function
function myplugin_cron_function() {
// see if fires via email notification
wp_mail('[email protected]','Cron Worked', date('r'));
}
wordpressのデフォルトの1時間ごと、1日ごとでは足りない場合は、独自に作成できます。
// CUSTOM TIME INTERVAL
add_filter('cron_schedules', 'myplugin_cron_add_intervals');
function myplugin_cron_add_intervals( $schedules ) {
$schedules['customTime'] = array(
'interval' => 30,
'display' => __('Every 30sec')
);
return $schedules;
}
wp_schedule_event()
内のdaily
をcustomTime
に置き換える
プラグインを使ってguiからあなたのcronを見ることもできます: https://wordpress.org/plugins/search/cron+view/