wp_cronを通すとusces_the_item();等の関数が効かない(取得できない)

フォーラム 使い方全般 wp_cronを通すとusces_the_item();等の関数が効かない(取得できない)

  • このトピックには6件の返信、4人の参加者があり、最後にphperにより3年、 11ヶ月前に更新されました。
7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • 投稿者
    投稿
  • #84156
    lazyeyed
    参加者

    wp_cronを用いて、決まった日時に商品を自動公開停止できるようにしておりますが、
    その際、どの商品が公開停止になったかという情報詳細をメールで送る為、
    情報をループでまわしその中にてusces_the_item()等の関数を叩く、独自の関数wp_cron_mailを叩くのですが、値が戻ってきません。

    ちなみに、商品詳細画面から手動で非公開にした際に、ステータス変更のフックを通して関数wp_cron_mailを叩くように設定し実行すると、usces_the_item()等からちゃんと値がとれます。

    なのでwp_cron_mail関数自体は問題無いように思うのですが、wp_cronを叩く際に何らかの情報が取れておらずusces_the_item()等の関数にて値が取れていないと思うのですが、wp_cronを通す際に必要な手順もしくは、別途includeすればよいファイル等ありましたらお教え頂けますと幸いです。
    (ちなみに直前にusc-e-shop/functions/template_func.phpを読み込んだだけではダメでした)

    —————–
    WordPress のバージョン:4.7.5
    Welcart のバージョン:1.9.4
    Welcart専用の拡張プラグイン:DLseller
    ご利用のテーマ:自作テーマ
    症状を確認したブラウザ:Chrome
    サーバー:さくらのクラウド
    SSLの利用:現在使用なし
    WordPress のパーマリンク設定:/%post_id%/
    —————–

    #84163
    yskysmr
    キーマスター

    こんにちは。

    usces_the_item() で商品情報を取得するには、先に the_post() が実行されている必要があります。つまり、global $post; に商品情報が取得されていないといけません。

    #84164
    lazyeyed
    参加者

    ちゃんと文面読んでいらっしゃいますでしょうか?
    ループで回していると書いて居りますので、the_postは必然的に実行されています。
    global $post;を通してクエリが返ってきていることも確認出来ていますし、
    ステータス変更のフックを通して回した場合は値が取れている → つまり$postからもデータは取れているのです。

    wp_cronを回した時にも$postからデータとれています。
    しかし、なぜuces_~の関数からだけデータが取れないのか理由が知りたいのです。

    • この返信は3年、 11ヶ月前にlazyeyedが編集しました。
    • この返信は3年、 11ヶ月前にlazyeyedが編集しました。
    #84226
    phper
    参加者

    wp_cronの実行が早すぎるんじゃないですか?
    独自のカスタマイズがうまくいかない原因は必ずしもプラグインに原因があるとは限らないでしょう。
    文面だけで、the_post()が使用されているかどうかは分からないと思いますし、実際the_post()の意味すら理解せずにカスタマズされる方は大勢いますのでキーマスターの方は確認で聞いたのだと思いますよ。
    どうしても原因が知りたいのであれば、有償でカスタマイズ依頼するかカスタマイズコードをすべて公開するぐらいしてはいかがでしょうか?(公開して返事がくるかは別ですが)

    教えてもらえるのが当然だと思っていませんか?
    けして荒らすつもりはありませんが、レスポンスの内容が気になったのでついコメントしてしまいました。失礼

    • この返信は3年、 11ヶ月前にphperが編集しました。
    #84229
    lazyeyed
    参加者

    まずwp_cronの実行が速過ぎるとuces_~の関数からデータ取得出来ないという点が理解できません。

    wordpressを利用、且つuscesから情報の取得を行う上でwhile have_host() the_post()が含まれていないと稼働しないのは最低限度必要なことであり、welcart開発者であればそのあたり把握してらっしゃるのが当然の物だと思って質問しています。
    逆にusces~を使う時に
    “ステータス変更のフックを通して関数wp_cron_mailを叩くように設定し実行すると、usces_the_item()等からちゃんと値がとれます。”
    と書いてますし、the_postを通さずに値が取得できる方法があるのでしょうか?
    無いですよね。
    この点から、あなたも含め文章をよく読んでらっしゃらないことが分かります。

    この回答だけではありません。
    他のスレッドも見返した上で、私の前回の質問も含め、最近の回答への返しの殆どが場当たり的な返答で返されているので、ここのフォーラムに運営が参入している意図が全く見受けられません。

    答えを頂くのが当たり前だとはさらさら思っていませんが、それにしても専属の開発者としては文章理解能力に欠ける方の対応であると取らざるを得ないので、喚起の点も含めご指摘申し上げたまでです。

    #84230
    mamekichi
    参加者

    他人にものを尋ねるのに感謝と敬意が感じられないねえ。

    #84231
    phper
    参加者

    言われたことを確認してみて違うならそれまでなので、回答者に反感を買うような言い方はやめましょうね。
    コードも見ていない回答者は最初から的確な指示がだせるわけがないので、少し冷静になってください。
    回答する側もあなたと同じようにcronを使わないと取得できるのになぜだろうという状態から入るのですから。

    私は開発者の味方をするわけではなく、そういう態度でいると原因を調べようという気にすらならないですよと言っているんです。
    ここのフォーラムは決して回答義務があるわけではないですからね。
    そこまで言っておいて解決できなかったときに今更カスタマイズや原因調査の依頼なんて恥ずかしくてできないのではないですか?

    ご自身がそこまで優れているとお思いなら、ご自分で原因を調べて、Welcartのどのコードが原因だから直してほしいと言えるぐらいにならないとですね。
    頑張ってください。

7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • トピック「wp_cronを通すとusces_the_item();等の関数が効かない(取得できない)」には新しい返信をつけることはできません。