最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

plugins - my hook or my function wont run in the cronjob

programmeradmin0浏览0评论

i have made a cron job to run a function but the function wont run. i did run the code that is inside the function, outside to see if it works and it did, it just wont do nothing if inside the function.

my hook add_action( 'Stock_Sync_Hook', 'Full_Stock_Sync' );

and my function

 function Full_Stock_Sync() {

                    $MasterwayRequest = new MasterwayRequest($this->APIKey, $this->APISecret);
                    $CompanyCode = $this->CompanyCode;

                    $CodArmazem = get_option('wc_mw_warehouse');
                    $CodLocalizacao = get_option('wc_mw_location');

                    $Stocks = $MasterwayRequest->stock_sync($CompanyCode, $CodArmazem, $CodLocalizacao);

                    if ($Stocks) {

                        global $woocommerce;

                        foreach ( $Stocks as $Stock ) {
                            $StockDisponivel = $Stock['StockDisponivel'];
                            $CodProduto = $Stock['CodProduto'];
                            $ID = wc_get_product_id_by_sku($CodProduto);

                            if ($ID)
                            {
                                $Product = new WC_Product( $ID );
                                $NewStock = wc_update_product_stock( $Product, $StockDisponivel);
                                echo $NewStock;
                                unset($ID);
                            }
                            else
                            {
                                $Product = new WC_Product( $CodProduto );
                                $NewStock = wc_update_product_stock( $Product, $StockDisponivel);
                                echo $NewStock;
                            }

                            $Product = new WC_Product( $CodProduto );
                            $wc_sku = $Product->get_sku();

                            if($wc_sku){
                                $ID = wc_get_product_id_by_sku($wc_sku);
                                $Product = new WC_Product( $ID );
                                unset($wc_sku);
                            }
                            $NewStock = wc_update_product_stock( $Product, $StockDisponivel);
                            echo $NewStock;

                        }//#FOREACH

                    }//#IF STOCKS
                }//#StockSync

The cron job is active but the function wont run, ive tried to change the time to like 10 sec and still nothing. Any ideias why it wont run?

i have made a cron job to run a function but the function wont run. i did run the code that is inside the function, outside to see if it works and it did, it just wont do nothing if inside the function.

my hook add_action( 'Stock_Sync_Hook', 'Full_Stock_Sync' );

and my function

 function Full_Stock_Sync() {

                    $MasterwayRequest = new MasterwayRequest($this->APIKey, $this->APISecret);
                    $CompanyCode = $this->CompanyCode;

                    $CodArmazem = get_option('wc_mw_warehouse');
                    $CodLocalizacao = get_option('wc_mw_location');

                    $Stocks = $MasterwayRequest->stock_sync($CompanyCode, $CodArmazem, $CodLocalizacao);

                    if ($Stocks) {

                        global $woocommerce;

                        foreach ( $Stocks as $Stock ) {
                            $StockDisponivel = $Stock['StockDisponivel'];
                            $CodProduto = $Stock['CodProduto'];
                            $ID = wc_get_product_id_by_sku($CodProduto);

                            if ($ID)
                            {
                                $Product = new WC_Product( $ID );
                                $NewStock = wc_update_product_stock( $Product, $StockDisponivel);
                                echo $NewStock;
                                unset($ID);
                            }
                            else
                            {
                                $Product = new WC_Product( $CodProduto );
                                $NewStock = wc_update_product_stock( $Product, $StockDisponivel);
                                echo $NewStock;
                            }

                            $Product = new WC_Product( $CodProduto );
                            $wc_sku = $Product->get_sku();

                            if($wc_sku){
                                $ID = wc_get_product_id_by_sku($wc_sku);
                                $Product = new WC_Product( $ID );
                                unset($wc_sku);
                            }
                            $NewStock = wc_update_product_stock( $Product, $StockDisponivel);
                            echo $NewStock;

                        }//#FOREACH

                    }//#IF STOCKS
                }//#StockSync

The cron job is active but the function wont run, ive tried to change the time to like 10 sec and still nothing. Any ideias why it wont run?

Share Improve this question asked Oct 21, 2019 at 8:52 Alexis GarciaAlexis Garcia 1032 bronze badges 1
  • Are you using a WP cron job or a server cron? WP cron jobs only run if someone is actively using the site. Basic troubleshooting should help - set up a much simpler function, run it as a cron job, and once you get that up and running, build your more complex actual function. – WebElaine Commented Oct 21, 2019 at 14:03
Add a comment  | 

1 Answer 1

Reset to default 0

I got it.

Im developing a plugin for woocommerce, so i was adding my Function to my plugin page instead of my include of the functions. Just put it on the functions and it works.

发布评论

评论列表(0)

  1. 暂无评论